Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 9c2754dc5cde031227c661550993520d940b21b1


Parents : 6320e9b
Author : Ivan <e46112d44649266d71fe2193e00a4710>
Signature : T66BB85Valid, signed by author
Date : 2026-07-19T03:32:21-05:00

feat: harden identity management and add security features with path resolution and trusted proxy handling

Changes
Diff

diff --git a/meshchatx.rsm b/meshchatx.rsm
index 3227dfc0..f93c1534 100644
Binary files a/meshchatx.rsm and b/meshchatx.rsm differ

diff --git a/meshchatx/meshchat.py b/meshchatx/meshchat.py
index c610e5dc..0275a636 100644
--- a/meshchatx/meshchat.py
+++ b/meshchatx/meshchat.py
@@ -66,6 +66,7 @@ from meshchatx.src.backend.announce_manager import (
filter_announced_dicts_by_search_query,
)
from meshchatx.src.backend.app_security_settings import (
+ get_trusted_proxy_cidrs,
get_web_ui_ip_allowlist,
load_app_security_settings,
save_app_security_settings,
@@ -141,7 +142,6 @@ from meshchatx.src.backend.map_manager import (
MAX_EXPORT_TILES,
TRANSPARENT_TILE,
is_mbtiles_filename,
- is_path_within_dir,
)
from meshchatx.src.backend.map_overlay_export import OverlayExportError
from meshchatx.src.backend.map_overlay_manager import (
@@ -159,6 +159,7 @@ from meshchatx.src.backend.meshchat_utils import (
interval_action_due,
message_fields_have_attachments,
normalize_hex_identifier,
+ normalize_identity_storage_hash,
parse_bool_query_param,
parse_lxmf_display_name,
parse_lxmf_propagation_node_app_data,
@@ -238,6 +239,7 @@ from meshchatx.src.backend.websocket_config_guard import (
from meshchatx.src.env_utils import env_bool
from meshchatx.src.path_utils import (
get_file_path,
+ is_path_within_dir,
resolve_log_dir,
safe_path_under_dir,
)
@@ -250,10 +252,7 @@ from meshchatx.src.version import __version__ as app_version
def _truncated_hash32_hex_ok(value: str | None) -> bool:
"""32 lowercase hex chars (Reticulum truncated hash) without relying on live RNS constants."""
- n = normalize_hex_identifier(value or "")
- if len(n) != 32:
- return False
- return hex_identifier_to_bytes(n) is not None
+ return bool(normalize_identity_storage_hash(value))
# Global log handler
@@ -1322,6 +1321,33 @@ class ReticulumMeshChat:
self._schedule_process_restart()
return result
+ def _resolve_database_restore_path(self, path: str) -> str | None:
+ """Resolve a restore zip under identity snapshots or database-backups only."""
+ if not isinstance(path, str) or not path or "\x00" in path:
+ return None
+ storage = self.storage_path
+ if not storage:
+ return None
+ allowed_roots = [
+ os.path.join(storage, "snapshots"),
+ os.path.join(storage, "database-backups"),
+ ]
+ candidates: list[str] = []
+ if os.path.isabs(path):
+ candidates.append(path)
+ else:
+ for root in allowed_roots:
+ candidates.append(os.path.join(root, path))
+ if not path.endswith(".zip"):
+ candidates.append(os.path.join(root, path + ".zip"))
+ for candidate in candidates:
+ real = os.path.realpath(candidate)
+ if not os.path.isfile(real):
+ continue
+ if any(is_path_within_dir(real, root) for root in allowed_roots):
+ return real
+ return None
+
def reset_password(self):
"""Clear the stored password hash so a new password can be set via the web UI."""
if self.config.auth_password_hash.get() is not None:
@@ -2554,9 +2580,15 @@ class ReticulumMeshChat:
backup_created = False
try:
+ canonical = normalize_identity_storage_hash(identity_hash)
+ if not canonical:
+ raise ValueError("Invalid identity hash")
# load the new identity
- identity_dir = os.path.join(self.storage_dir, "identities", identity_hash)
+ identities_root = os.path.join(self.storage_dir, "identities")
+ identity_dir = os.path.join(identities_root, canonical)
identity_file = os.path.join(identity_dir, "identity")
+ if not is_path_within_dir(identity_dir, identities_root):
+ raise ValueError("Invalid identity hash")
if not os.path.exists(identity_file):
raise ValueError("Identity file not found")
@@ -2589,7 +2621,7 @@ class ReticulumMeshChat:
json.dumps(
{
"type": "identity_switched",
- "identity_hash": identity_hash,
+ "identity_hash": canonical,
"display_name": (
self.config.display_name.get()
if hasattr(self, "config")
@@ -4746,7 +4778,9 @@ class ReticulumMeshChat:
return await handler(request)
allowlist = get_web_ui_ip_allowlist(self.storage_dir)
if allowlist:
- ip = _request_client_ip(request)
+ ip = _request_client_ip(
+ request, get_trusted_proxy_cidrs(self.storage_dir)
+ )
if not client_ip_allowed(ip, allowlist):
if path.startswith("/api/"):
return web.json_response(
@@ -5239,21 +5273,14 @@ class ReticulumMeshChat:
status=400,
)
- # Verify path is within identity storage snapshots or provided directly
- if not os.path.exists(path):
- # Try relative to snapshots dir
- potential_path = os.path.join(self.storage_path, "snapshots", path)
- if os.path.exists(potential_path):
- path = potential_path
- elif os.path.exists(potential_path + ".zip"):
- path = potential_path + ".zip"
- else:
- return web.json_response(
- {"status": "error", "message": "Snapshot not found"},
- status=404,
- )
+ resolved = self._resolve_database_restore_path(path)
+ if not resolved:
+ return web.json_response(
+ {"status": "error", "message": "Snapshot not found"},
+ status=404,
+ )
- result = self.restore_database(path, relaunch=True)
+ result = self.restore_database(resolved, relaunch=True)
return web.json_response(
{
"status": "success",
@@ -5341,11 +5368,9 @@ class ReticulumMeshChat:
if not filename.endswith(".zip"):
filename += ".zip"
backup_dir = os.path.join(self.storage_path, "database-backups")
- full_path = os.path.join(backup_dir, filename)
+ full_path = safe_path_under_dir(backup_dir, filename)
- if not os.path.exists(full_path) or not full_path.startswith(
- backup_dir,
- ):
+ if not full_path or not os.path.isfile(full_path):
return web.json_response(
{"status": "error", "message": "Backup not found"},
status=404,
@@ -5354,7 +5379,7 @@ class ReticulumMeshChat:
return web.FileResponse(
path=full_path,
headers={
- "Content-Disposition": f'attachment; filename="{filename}"',
+ "Content-Disposition": f'attachment; filename="{os.path.basename(full_path)}"',
},
)
except Exception as e:
@@ -5370,11 +5395,9 @@ class ReticulumMeshChat:
if not filename.endswith(".zip"):
filename += ".zip"
snapshot_dir = os.path.join(self.storage_path, "snapshots")
- full_path = os.path.join(snapshot_dir, filename)
+ full_path = safe_path_under_dir(snapshot_dir, filename)
- if not os.path.exists(full_path) or not full_path.startswith(
- snapshot_dir,
- ):
+ if not full_path or not os.path.isfile(full_path):
return web.json_response(
{"status": "error", "message": "Snapshot not found"},
status=404,
@@ -5383,7 +5406,7 @@ class ReticulumMeshChat:
return web.FileResponse(
path=full_path,
headers={
- "Content-Disposition": f'attachment; filename="{filename}"',
+ "Content-Disposition": f'attachment; filename="{os.path.basename(full_path)}"',
},
)
except Exception as e:
@@ -5511,6 +5534,7 @@ class ReticulumMeshChat:
"https_enabled": self.use_https,
"is_loopback_bind": _is_loopback_bind_host(self.listen_host),
"web_ui_ip_allowlist": settings.get("web_ui_ip_allowlist", ""),
+ "trusted_proxy_cidrs": settings.get("trusted_proxy_cidrs", ""),
**self._landlock_status_dict(),
"privacy_mode_enabled": privacy_mode_enabled(self.config),
"auth_enabled": self.auth_enabled,
@@ -5526,11 +5550,13 @@ class ReticulumMeshChat:
if not isinstance(data, dict):
return web.json_response({"error": "Invalid request body"}, status=400)
try:
+ updates = {}
if "web_ui_ip_allowlist" in data:
- settings = save_app_security_settings(
- self.storage_dir,
- {"web_ui_ip_allowlist": data.get("web_ui_ip_allowlist")},
- )
+ updates["web_ui_ip_allowlist"] = data.get("web_ui_ip_allowlist")
+ if "trusted_proxy_cidrs" in data:
+ updates["trusted_proxy_cidrs"] = data.get("trusted_proxy_cidrs")
+ if updates:
+ settings = save_app_security_settings(self.storage_dir, updates)
else:
settings = load_app_security_settings(self.storage_dir)
except ValueError as exc:
@@ -5542,6 +5568,7 @@ class ReticulumMeshChat:
"https_enabled": self.use_https,
"is_loopback_bind": _is_loopback_bind_host(self.listen_host),
"web_ui_ip_allowlist": settings.get("web_ui_ip_allowlist", ""),
+ "trusted_proxy_cidrs": settings.get("trusted_proxy_cidrs", ""),
**self._landlock_status_dict(),
"privacy_mode_enabled": privacy_mode_enabled(self.config),
"auth_enabled": self.auth_enabled,
@@ -5614,7 +5641,7 @@ class ReticulumMeshChat:
blocked = self._enforce_login_access(request, SETUP_PATH)
if blocked is not None:
return blocked
- ip = _request_client_ip(request)
+ ip = _request_client_ip(request, get_trusted_proxy_cidrs(self.storage_dir))
ua = request.headers.get("User-Agent", "") or ""
ua_h = user_agent_hash(ua)
id_hash = self.identity.hash.hex()
@@ -5710,7 +5737,7 @@ class ReticulumMeshChat:
blocked = self._enforce_login_access(request, LOGIN_PATH)
if blocked is not None:
return blocked
- ip = _request_client_ip(request)
+ ip = _request_client_ip(request, get_trusted_proxy_cidrs(self.storage_dir))
ua = request.headers.get("User-Agent", "") or ""
ua_h = user_agent_hash(ua)
id_hash = self.identity.hash.hex()
@@ -5905,11 +5932,12 @@ class ReticulumMeshChat:
allowed = [
"https://github.com/",
+ "https://codeload.github.com/",
"https://objects.githubusercontent.com/",
"https://release-assets.githubusercontent.com/",
]
if gitea_url:
- allowed.insert(0, gitea_url + "/")
+ allowed.insert(0, gitea_url.rstrip("/") + "/")
if not any(url.startswith(a) for a in allowed):
return web.json_response({"error": "Invalid download URL"}, status=403)
@@ -5922,6 +5950,12 @@ class ReticulumMeshChat:
)
async with aiohttp.ClientSession() as session:
async with session.get(url, allow_redirects=True) as response:
+ final_url = str(response.url)
+ if not any(final_url.startswith(a) for a in allowed):
+ return web.json_response(
+ {"error": "Invalid download redirect URL"},
+ status=403,
+ )
if response.status != 200:
return web.json_response(
{"error": f"Failed to download: {response.status}"},
@@ -8747,7 +8781,14 @@ class ReticulumMeshChat:
@routes.delete("/api/v1/identities/{identity_hash}")
async def identities_delete(request):
try:
- identity_hash = request.match_info.get("identity_hash")
+ identity_hash = normalize_identity_storage_hash(
+ request.match_info.get("identity_hash"),
+ )
+ if not identity_hash:
+ return web.json_response(
+ {"message": "Invalid identity hash"},
+ status=400,
+ )
if self.delete_identity(identity_hash):
return web.json_response(
{
@@ -8760,6 +8801,13 @@ class ReticulumMeshChat:
},
status=404,
)
+ except ValueError as e:
+ return web.json_response(
+ {
+ "message": str(e),
+ },
+ status=400,
+ )
except Exception as e:
return web.json_response(
{
@@ -8772,7 +8820,14 @@ class ReticulumMeshChat:
async def identities_switch(request):
try:
data = await request.json()
- identity_hash = data.get("identity_hash")
+ identity_hash = normalize_identity_storage_hash(
+ data.get("identity_hash"),
+ )
+ if not identity_hash:
+ return web.json_response(
+ {"message": "Invalid identity hash"},
+ status=400,
+ )
keep_alive = data.get("keep_alive", False)
# attempt hotswap first
@@ -8801,12 +8856,14 @@ class ReticulumMeshChat:
self.storage_dir,
"identity",
)
- identity_dir = os.path.join(
- self.storage_dir,
- "identities",
- identity_hash,
- )
+ identities_root = os.path.join(self.storage_dir, "identities")
+ identity_dir = os.path.join(identities_root, identity_hash)
identity_file = os.path.join(identity_dir, "identity")
+ if not is_path_within_dir(identity_dir, identities_root):
+ return web.json_response(
+ {"message": "Invalid identity hash"},
+ status=400,
+ )
shutil.copy2(identity_file, main_identity_file)
@@ -17401,7 +17458,7 @@ class ReticulumMeshChat:
def _enforce_login_access(self, request, path: str):
if not self.database:
return None
- ip = _request_client_ip(request)
+ ip = _request_client_ip(request, get_trusted_proxy_cidrs(self.storage_dir))
ua = request.headers.get("User-Agent", "") or ""
ua_h = user_agent_hash(ua)
id_hash = self.identity.hash.hex()

diff --git a/meshchatx/src/backend/app_security_settings.py b/meshchatx/src/backend/app_security_settings.py
index e64918bd..2b24310a 100644
--- a/meshchatx/src/backend/app_security_settings.py
+++ b/meshchatx/src/backend/app_security_settings.py
@@ -22,6 +22,7 @@ def _settings_path(storage_dir: str) -> str:
def _default_settings() -> dict[str, Any]:
return {
"web_ui_ip_allowlist": "",
+ "trusted_proxy_cidrs": "",
}
@@ -54,6 +55,11 @@ def save_app_security_settings(
if text:
parse_allowlist_networks(text)
current["web_ui_ip_allowlist"] = text
+ if "trusted_proxy_cidrs" in updates:
+ text = normalize_allowlist_text(updates.get("trusted_proxy_cidrs"))
+ if text:
+ parse_allowlist_networks(text)
+ current["trusted_proxy_cidrs"] = text
path = _settings_path(storage_dir)
os.makedirs(os.path.dirname(path) or ".", exist_ok=True)
with _LOCK, open(path, "w", encoding="utf-8") as f:
@@ -66,3 +72,13 @@ def get_web_ui_ip_allowlist(storage_dir: str) -> str:
return normalize_allowlist_text(
load_app_security_settings(storage_dir).get("web_ui_ip_allowlist"),
)
+
+
+def get_trusted_proxy_cidrs(storage_dir: str) -> str:
+ """CIDRs allowed to supply X-Forwarded-For (env overrides file settings)."""
+ env = normalize_allowlist_text(os.environ.get("MESHCHAT_TRUSTED_PROXIES"))
+ if env:
+ return env
+ return normalize_allowlist_text(
+ load_app_security_settings(storage_dir).get("trusted_proxy_cidrs"),
+ )

diff --git a/meshchatx/src/backend/data/licenses_backend.json b/meshchatx/src/backend/data/licenses_backend.json
index adfcd5a2..b5df266f 100644
--- a/meshchatx/src/backend/data/licenses_backend.json
+++ b/meshchatx/src/backend/data/licenses_backend.json
@@ -1,188 +1,188 @@
[
- {
- "name": "aiohappyeyeballs",
- "version": "2.6.1",
- "author": "J. Nick Koston",
- "license": "PSF-2.0"
- },
- {
- "name": "aiohttp",
- "version": "3.14.1",
- "author": "—",
- "license": "Apache-2.0 AND MIT"
- },
- {
- "name": "aiohttp-session",
- "version": "2.12.1",
- "author": "Andrew Svetlov",
- "license": "Apache 2"
- },
- {
- "name": "aiosignal",
- "version": "1.4.0",
- "author": "aiohttp team <team@aiohttp.org>",
- "license": "Apache 2.0"
- },
- {
- "name": "attrs",
- "version": "26.1.0",
- "author": "Hynek Schlawack <hs@ox.cx>",
- "license": "MIT"
- },
- {
- "name": "audioop-lts",
- "version": "0.2.2",
- "author": "—",
- "license": "PSF-2.0"
- },
- {
- "name": "bcrypt",
- "version": "5.0.0",
- "author": "The Python Cryptographic Authority developers <cryptography-dev@python.org>",
- "license": "Apache-2.0"
- },
- {
- "name": "bleak",
- "version": "3.0.2",
- "author": "Henrik Blidh",
- "license": "MIT"
- },
- {
- "name": "cbor2",
- "version": "6.1.1",
- "author": "Alex Grönholm <alex.gronholm@nextday.fi>",
- "license": "MIT"
- },
- {
- "name": "cffi",
- "version": "2.0.0",
- "author": "Armin Rigo, Maciej Fijalkowski",
- "license": "MIT"
- },
- {
- "name": "cryptography",
- "version": "49.0.0",
- "author": "The Python Cryptographic Authority and individual contributors <cryptography-dev@python.org>",
- "license": "Apache-2.0 OR BSD-3-Clause"
- },
- {
- "name": "dbus-fast",
- "version": "5.0.22",
- "author": "Bluetooth Devices Authors",
- "license": "MIT"
- },
- {
- "name": "frozenlist",
- "version": "1.8.0",
- "author": "aiohttp team <team@aiohttp.org>",
- "license": "Apache-2.0"
- },
- {
- "name": "idna",
- "version": "3.18",
- "author": "Kim Davies <kim+pypi@gumleaf.org>",
- "license": "BSD-3-Clause"
- },
- {
- "name": "lxmf",
- "version": "1.0.1",
- "author": "Mark Qvist",
- "license": "Reticulum License"
- },
- {
- "name": "lxmfy",
- "version": "1.6.5",
- "author": "Quad4 <team@quad4.io>",
- "license": "BSD-0-Clause"
- },
- {
- "name": "lxst",
- "version": "0.5.0",
- "author": "Mark Qvist",
- "license": "Other/Proprietary License"
- },
- {
- "name": "miniaudio",
- "version": "1.71",
- "author": "Irmen de Jong <irmen@razorvine.net>",
- "license": "MIT"
- },
- {
- "name": "multidict",
- "version": "6.7.1",
- "author": "Andrew Svetlov",
- "license": "Apache License 2.0"
- },
- {
- "name": "numpy",
- "version": "2.4.6",
- "author": "Travis E. Oliphant et al.",
- "license": "BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0"
- },
- {
- "name": "ply",
- "version": "3.11",
- "author": "David Beazley",
- "license": "BSD"
- },
- {
- "name": "propcache",
- "version": "0.4.1",
- "author": "Andrew Svetlov",
- "license": "Apache-2.0"
- },
- {
- "name": "psutil",
- "version": "7.2.2",
- "author": "Giampaolo Rodola",
- "license": "BSD-3-Clause"
- },
- {
- "name": "pycodec2",
- "version": "4.1.1",
- "author": "Grzegorz Milka",
- "license": "OSI Approved :: BSD License"
- },
- {
- "name": "pycparser",
- "version": "3.0",
- "author": "Eli Bendersky <eliben@gmail.com>",
- "license": "BSD-3-Clause"
- },
- {
- "name": "pyserial",
- "version": "3.5",
- "author": "Chris Liechti",
- "license": "BSD"
- },
- {
- "name": "reticulum-meshchatx",
- "version": "4.8.0",
- "author": "Quad4",
- "license": "0BSD AND MIT"
- },
- {
- "name": "rns",
- "version": "1.3.9",
- "author": "Mark Qvist",
- "license": "Reticulum License"
- },
- {
- "name": "wasmtime",
- "version": "46.0.1",
- "author": "The Wasmtime Project Developers <hello@bytecodealliance.org>",
- "license": "Apache-2.0 WITH LLVM-exception"
- },
- {
- "name": "websockets",
- "version": "16.0",
- "author": "Aymeric Augustin <aymeric.augustin@m4x.org>",
- "license": "BSD-3-Clause"
- },
- {
- "name": "yarl",
- "version": "1.23.0",
- "author": "Andrew Svetlov",
- "license": "Apache-2.0"
- }
+ {
+ "name": "aiohappyeyeballs",
+ "version": "2.6.1",
+ "author": "J. Nick Koston",
+ "license": "PSF-2.0"
+ },
+ {
+ "name": "aiohttp",
+ "version": "3.14.1",
+ "author": "—",
+ "license": "Apache-2.0 AND MIT"
+ },
+ {
+ "name": "aiohttp-session",
+ "version": "2.12.1",
+ "author": "Andrew Svetlov",
+ "license": "Apache 2"
+ },
+ {
+ "name": "aiosignal",
+ "version": "1.4.0",
+ "author": "aiohttp team <team@aiohttp.org>",
+ "license": "Apache 2.0"
+ },
+ {
+ "name": "attrs",
+ "version": "26.1.0",
+ "author": "Hynek Schlawack <hs@ox.cx>",
+ "license": "MIT"
+ },
+ {
+ "name": "audioop-lts",
+ "version": "0.2.2",
+ "author": "—",
+ "license": "PSF-2.0"
+ },
+ {
+ "name": "bcrypt",
+ "version": "5.0.0",
+ "author": "The Python Cryptographic Authority developers <cryptography-dev@python.org>",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "bleak",
+ "version": "3.0.2",
+ "author": "Henrik Blidh",
+ "license": "MIT"
+ },
+ {
+ "name": "cbor2",
+ "version": "6.1.1",
+ "author": "Alex Grönholm <alex.gronholm@nextday.fi>",
+ "license": "MIT"
+ },
+ {
+ "name": "cffi",
+ "version": "2.0.0",
+ "author": "Armin Rigo, Maciej Fijalkowski",
+ "license": "MIT"
+ },
+ {
+ "name": "cryptography",
+ "version": "49.0.0",
+ "author": "The Python Cryptographic Authority and individual contributors <cryptography-dev@python.org>",
+ "license": "Apache-2.0 OR BSD-3-Clause"
+ },
+ {
+ "name": "dbus-fast",
+ "version": "5.0.22",
+ "author": "Bluetooth Devices Authors",
+ "license": "MIT"
+ },
+ {
+ "name": "frozenlist",
+ "version": "1.8.0",
+ "author": "aiohttp team <team@aiohttp.org>",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "idna",
+ "version": "3.18",
+ "author": "Kim Davies <kim+pypi@gumleaf.org>",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "lxmf",
+ "version": "1.0.1",
+ "author": "Mark Qvist",
+ "license": "Reticulum License"
+ },
+ {
+ "name": "lxmfy",
+ "version": "1.6.5",
+ "author": "Quad4 <team@quad4.io>",
+ "license": "BSD-0-Clause"
+ },
+ {
+ "name": "lxst",
+ "version": "0.5.0",
+ "author": "Mark Qvist",
+ "license": "Other/Proprietary License"
+ },
+ {
+ "name": "miniaudio",
+ "version": "1.71",
+ "author": "Irmen de Jong <irmen@razorvine.net>",
+ "license": "MIT"
+ },
+ {
+ "name": "multidict",
+ "version": "6.7.1",
+ "author": "Andrew Svetlov",
+ "license": "Apache License 2.0"
+ },
+ {
+ "name": "numpy",
+ "version": "2.4.6",
+ "author": "Travis E. Oliphant et al.",
+ "license": "BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0"
+ },
+ {
+ "name": "ply",
+ "version": "3.11",
+ "author": "David Beazley",
+ "license": "BSD"
+ },
+ {
+ "name": "propcache",
+ "version": "0.4.1",
+ "author": "Andrew Svetlov",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "psutil",
+ "version": "7.2.2",
+ "author": "Giampaolo Rodola",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "pycodec2",
+ "version": "4.1.1",
+ "author": "Grzegorz Milka",
+ "license": "OSI Approved :: BSD License"
+ },
+ {
+ "name": "pycparser",
+ "version": "3.0",
+ "author": "Eli Bendersky <eliben@gmail.com>",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "pyserial",
+ "version": "3.5",
+ "author": "Chris Liechti",
+ "license": "BSD"
+ },
+ {
+ "name": "reticulum-meshchatx",
+ "version": "4.8.0",
+ "author": "Quad4",
+ "license": "0BSD AND MIT"
+ },
+ {
+ "name": "rns",
+ "version": "1.3.9",
+ "author": "Mark Qvist",
+ "license": "Reticulum License"
+ },
+ {
+ "name": "wasmtime",
+ "version": "46.0.1",
+ "author": "The Wasmtime Project Developers <hello@bytecodealliance.org>",
+ "license": "Apache-2.0 WITH LLVM-exception"
+ },
+ {
+ "name": "websockets",
+ "version": "16.0",
+ "author": "Aymeric Augustin <aymeric.augustin@m4x.org>",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "yarl",
+ "version": "1.23.0",
+ "author": "Andrew Svetlov",
+ "license": "Apache-2.0"
+ }
]

diff --git a/meshchatx/src/backend/data/licenses_frontend.json b/meshchatx/src/backend/data/licenses_frontend.json
index 2d29a3e5..98c0be7f 100644
--- a/meshchatx/src/backend/data/licenses_frontend.json
+++ b/meshchatx/src/backend/data/licenses_frontend.json
@@ -1,3932 +1,3932 @@
[
- {
- "name": "@aashutoshrathi/word-wrap",
- "version": "1.2.6",
- "author": "Jon Schlinkert",
- "license": "MIT"
- },
- {
- "name": "@asamuzakjp/css-color",
- "version": "5.1.11",
- "author": "asamuzaK",
- "license": "MIT"
- },
- {
- "name": "@asamuzakjp/dom-selector",
- "version": "7.1.1",
- "author": "asamuzaK",
- "license": "MIT"
- },
- {
- "name": "@asamuzakjp/generational-cache",
- "version": "1.0.1",
- "author": "asamuzaK",
- "license": "MIT"
- },
- {
- "name": "@asamuzakjp/nwsapi",
- "version": "2.3.9",
- "author": "Diego Perini",
- "license": "MIT"
- },
- {
- "name": "@babel/helper-string-parser",
- "version": "7.27.1",
- "author": "The Babel Team",
- "license": "MIT"
- },
- {
- "name": "@babel/helper-validator-identifier",
- "version": "7.28.5",
- "author": "The Babel Team",
- "license": "MIT"
- },
- {
- "name": "@babel/parser",
- "version": "7.29.0",
- "author": "The Babel Team",
- "license": "MIT"
- },
- {
- "name": "@babel/types",
- "version": "7.29.0",
- "author": "The Babel Team",
- "license": "MIT"
- },
- {
- "name": "@bcoe/v8-coverage",
- "version": "1.0.2",
- "author": "Charles Samborski",
- "license": "MIT"
- },
- {
- "name": "@bramus/specificity",
- "version": "2.4.2",
- "author": "Bramus Van Damme",
- "license": "MIT"
- },
- {
- "name": "@csstools/color-helpers",
- "version": "6.0.2",
- "author": "—",
- "license": "MIT-0"
- },
- {
- "name": "@csstools/css-calc",
- "version": "3.2.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@csstools/css-color-parser",
- "version": "4.1.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@csstools/css-parser-algorithms",
- "version": "4.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@csstools/css-syntax-patches-for-csstree",
- "version": "1.1.6",
- "author": "—",
- "license": "MIT-0"
- },
- {
- "name": "@csstools/css-tokenizer",
- "version": "4.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@egjs/hammerjs",
- "version": "2.0.17",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@electron-internal/extract-zip",
- "version": "1.0.4",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "@electron/asar",
- "version": "3.4.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@electron/fuses",
- "version": "1.8.0",
- "author": "Electron Community",
- "license": "MIT"
- },
- {
- "name": "@electron/get",
- "version": "3.1.0",
- "author": "Samuel Attard",
- "license": "MIT"
- },
- {
- "name": "@electron/notarize",
- "version": "2.5.0",
- "author": "Samuel Attard",
- "license": "MIT"
- },
- {
- "name": "@electron/osx-sign",
- "version": "1.3.3",
- "author": "electron",
- "license": "BSD-2-Clause"
- },
- {
- "name": "@electron/rebuild",
- "version": "4.0.6",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@electron/universal",
- "version": "2.0.3",
- "author": "Samuel Attard",
- "license": "MIT"
- },
- {
- "name": "@electron/windows-sign",
- "version": "1.1.2",
- "author": "Felix Rieseberg",
- "license": "BSD-2-Clause"
- },
- {
- "name": "@epic-web/invariant",
- "version": "1.0.0",
- "author": "Kent C. Dodds",
- "license": "MIT"
- },
- {
- "name": "@eslint-community/eslint-utils",
- "version": "4.4.0",
- "author": "Toru Nagashima",
- "license": "MIT"
- },
- {
- "name": "@eslint-community/regexpp",
- "version": "4.12.1",
- "author": "Toru Nagashima",
- "license": "MIT"
- },
- {
- "name": "@eslint/config-array",
- "version": "0.21.2",
- "author": "Nicholas C. Zakas",
- "license": "Apache-2.0"
- },
- {
- "name": "@eslint/config-helpers",
- "version": "0.4.2",
- "author": "—",
- "license": "Apache-2.0"
- },
- {
- "name": "@eslint/core",
- "version": "0.17.0",
- "author": "Nicholas C. Zakas",
- "license": "Apache-2.0"
- },
- {
- "name": "@eslint/eslintrc",
- "version": "3.3.5",
- "author": "Nicholas C. Zakas",
- "license": "MIT"
- },
- {
- "name": "@eslint/js",
- "version": "9.39.4",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@eslint/object-schema",
- "version": "2.1.7",
- "author": "Nicholas C. Zakas",
- "license": "Apache-2.0"
- },
- {
- "name": "@eslint/plugin-kit",
- "version": "0.4.1",
- "author": "Nicholas C. Zakas",
- "license": "Apache-2.0"
- },
- {
- "name": "@exodus/bytes",
- "version": "1.15.0",
- "author": "Exodus Movement, Inc.",
- "license": "MIT"
- },
- {
- "name": "@fontsource/noto-sans",
- "version": "5.2.10",
- "author": "Google Inc.",
- "license": "OFL-1.1"
- },
- {
- "name": "@humanfs/core",
- "version": "0.19.1",
- "author": "Nicholas C. Zakas",
- "license": "Apache-2.0"
- },
- {
- "name": "@humanfs/node",
- "version": "0.16.6",
- "author": "Nicholas C. Zakas",
- "license": "Apache-2.0"
- },
- {
- "name": "@humanwhocodes/module-importer",
- "version": "1.0.1",
- "author": "Nicholas C. Zaks",
- "license": "Apache-2.0"
- },
- {
- "name": "@humanwhocodes/retry",
- "version": "0.3.0",
- "author": "Nicholas C. Zaks",
- "license": "Apache-2.0"
- },
- {
- "name": "@intlify/core-base",
- "version": "11.4.6",
- "author": "kazuya kawaguchi",
- "license": "MIT"
- },
- {
- "name": "@intlify/devtools-types",
- "version": "11.4.6",
- "author": "kazuya kawaguchi",
- "license": "MIT"
- },
- {
- "name": "@intlify/message-compiler",
- "version": "11.4.6",
- "author": "kazuya kawaguchi",
- "license": "MIT"
- },
- {
- "name": "@intlify/shared",
- "version": "11.4.6",
- "author": "kazuya kawaguchi",
- "license": "MIT"
- },
- {
- "name": "@isaacs/cliui",
- "version": "8.0.2",
- "author": "Ben Coe",
- "license": "ISC"
- },
- {
- "name": "@isaacs/cliui",
- "version": "9.0.0",
- "author": "—",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "@isaacs/fs-minipass",
- "version": "4.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "@jridgewell/gen-mapping",
- "version": "0.3.0",
- "author": "Justin Ridgewell",
- "license": "MIT"
- },
- {
- "name": "@jridgewell/remapping",
- "version": "2.3.5",
- "author": "Justin Ridgewell",
- "license": "MIT"
- },
- {
- "name": "@jridgewell/resolve-uri",
- "version": "3.0.3",
- "author": "Justin Ridgewell",
- "license": "MIT"
- },
- {
- "name": "@jridgewell/set-array",
- "version": "1.2.1",
- "author": "Justin Ridgewell",
- "license": "MIT"
- },
- {
- "name": "@jridgewell/source-map",
- "version": "0.3.3",
- "author": "Justin Ridgewell",
- "license": "MIT"
- },
- {
- "name": "@jridgewell/sourcemap-codec",
- "version": "1.4.10",
- "author": "Justin Ridgewell",
- "license": "MIT"
- },
- {
- "name": "@jridgewell/trace-mapping",
- "version": "0.3.9",
- "author": "Justin Ridgewell",
- "license": "MIT"
- },
- {
- "name": "@keyv/serialize",
- "version": "1.1.1",
- "author": "Jared Wray",
- "license": "MIT"
- },
- {
- "name": "@malept/cross-spawn-promise",
- "version": "2.0.0",
- "author": "Mark Lee",
- "license": "Apache-2.0"
- },
- {
- "name": "@malept/flatpak-bundler",
- "version": "0.4.0",
- "author": "Matt Watson",
- "license": "MIT"
- },
- {
- "name": "@mapbox/jsonlint-lines-primitives",
- "version": "2.0.3",
- "author": "Zach Carter",
- "license": "MIT"
- },
- {
- "name": "@mapbox/unitbezier",
- "version": "1.0.0",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "@maplibre/maplibre-gl-style-spec",
- "version": "24.10.0",
- "author": "MapLibre",
- "license": "ISC"
- },
- {
- "name": "@mdi/font",
- "version": "7.4.47",
- "author": "Austin Andrews",
- "license": "Apache-2.0"
- },
- {
- "name": "@mdi/js",
- "version": "7.4.47",
- "author": "Austin Andrews",
- "license": "Apache-2.0"
- },
- {
- "name": "@noble/hashes",
- "version": "1.4.0",
- "author": "Paul Miller",
- "license": "MIT"
- },
- {
- "name": "@one-ini/wasm",
- "version": "0.1.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@oxc-parser/binding-linux-x64-gnu",
- "version": "0.137.0",
- "author": "Boshen and oxc contributors",
- "license": "MIT"
- },
- {
- "name": "@oxc-project/types",
- "version": "0.133.0",
- "author": "Boshen and oxc contributors",
- "license": "MIT"
- },
- {
- "name": "@oxc-resolver/binding-linux-x64-gnu",
- "version": "11.21.3",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@peculiar/asn1-schema",
- "version": "2.8.0",
- "author": "PeculiarVentures, LLC",
- "license": "MIT"
- },
- {
- "name": "@peculiar/json-schema",
- "version": "1.1.12",
- "author": "PeculiarVentures, Inc",
- "license": "MIT"
- },
- {
- "name": "@peculiar/utils",
- "version": "2.0.3",
- "author": "PeculiarVentures",
- "license": "MIT"
- },
- {
- "name": "@peculiar/webcrypto",
- "version": "1.7.1",
- "author": "PeculiarVentures",
- "license": "MIT"
- },
- {
- "name": "@petamoriken/float16",
- "version": "3.9.3",
- "author": "Kenta Moriuchi",
- "license": "MIT"
- },
- {
- "name": "@pkgjs/parseargs",
- "version": "0.11.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@pkgr/core",
- "version": "0.3.6",
- "author": "JounQin",
- "license": "MIT"
- },
- {
- "name": "@playwright/test",
- "version": "1.61.1",
- "author": "Microsoft Corporation",
- "license": "Apache-2.0"
- },
- {
- "name": "@polka/url",
- "version": "1.0.0-next.24",
- "author": "Luke Edwards",
- "license": "MIT"
- },
- {
- "name": "@rolldown/binding-linux-x64-gnu",
- "version": "1.0.3",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@rolldown/pluginutils",
- "version": "1.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@sec-ant/readable-stream",
- "version": "0.4.1",
- "author": "Ze-Zheng Wu",
- "license": "MIT"
- },
- {
- "name": "@sindresorhus/is",
- "version": "8.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "@standard-schema/spec",
- "version": "1.1.0",
- "author": "Colin McDonnell",
- "license": "MIT"
- },
- {
- "name": "@tailwindcss/forms",
- "version": "0.5.11",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@tailwindcss/node",
- "version": "4.2.4",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@tailwindcss/oxide",
- "version": "4.2.4",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@tailwindcss/oxide-linux-x64-gnu",
- "version": "4.2.4",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@tailwindcss/vite",
- "version": "4.2.4",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@tanstack/virtual-core",
- "version": "3.17.2",
- "author": "Tanner Linsley",
- "license": "MIT"
- },
- {
- "name": "@tanstack/vue-virtual",
- "version": "3.13.30",
- "author": "Tanner Linsley",
- "license": "MIT"
- },
- {
- "name": "@types/chai",
- "version": "5.2.2",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/debug",
- "version": "4.1.13",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/deep-eql",
- "version": "4.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/estree",
- "version": "1.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/fs-extra",
- "version": "9.0.13",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/hammerjs",
- "version": "2.0.36",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/http-cache-semantics",
- "version": "4.2.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/json-schema",
- "version": "7.0.15",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/ms",
- "version": "2.1.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/node",
- "version": "0.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/rbush",
- "version": "4.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@types/trusted-types",
- "version": "2.0.7",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitejs/plugin-vue",
- "version": "6.0.7",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vitest/coverage-v8",
- "version": "4.1.5",
- "author": "Anthony Fu",
- "license": "MIT"
- },
- {
- "name": "@vitest/expect",
- "version": "4.1.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitest/mocker",
- "version": "4.1.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitest/pretty-format",
- "version": "4.1.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitest/runner",
- "version": "4.1.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitest/snapshot",
- "version": "4.1.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitest/spy",
- "version": "4.1.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitest/ui",
- "version": "4.1.9",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vitest/utils",
- "version": "4.1.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@volar/language-core",
- "version": "2.4.28",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@volar/source-map",
- "version": "2.4.28",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@volar/typescript",
- "version": "2.4.28",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vue/compiler-core",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/compiler-dom",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/compiler-sfc",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/compiler-ssr",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/devtools-api",
- "version": "6.6.4",
- "author": "Guillaume Chau",
- "license": "MIT"
- },
- {
- "name": "@vue/language-core",
- "version": "3.3.6",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "@vue/reactivity",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/runtime-core",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/runtime-dom",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/server-renderer",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/shared",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "@vue/test-utils",
- "version": "2.4.11",
- "author": "Lachlan Miller",
- "license": "MIT"
- },
- {
- "name": "@vuetify/loader-shared",
- "version": "2.1.2",
- "author": "Kael Watts-Deuchar",
- "license": "MIT"
- },
- {
- "name": "@zarrita/storage",
- "version": "0.2.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "abbrev",
- "version": "2.0.0",
- "author": "GitHub Inc.",
- "license": "ISC"
- },
- {
- "name": "acorn",
- "version": "0.11.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "acorn-jsx",
- "version": "5.3.2",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "agent-base",
- "version": "7.0.2",
- "author": "Nathan Rajlich",
- "license": "MIT"
- },
- {
- "name": "ajv",
- "version": "6.14.0",
- "author": "Evgeny Poberezkin",
- "license": "MIT"
- },
- {
- "name": "alien-signals",
- "version": "3.2.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "ansi-regex",
- "version": "5.0.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "ansi-styles",
- "version": "4.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "app-builder-lib",
- "version": "26.15.3",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "argparse",
- "version": "2.0.1",
- "author": "—",
- "license": "Python-2.0"
- },
- {
- "name": "array-buffer-byte-length",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "arraybuffer.prototype.slice",
- "version": "1.0.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "asn1js",
- "version": "3.0.10",
- "author": "Yury Strozhevsky",
- "license": "BSD-3-Clause"
- },
- {
- "name": "ast-types",
- "version": "0.8.15",
- "author": "Ben Newman",
- "license": "MIT"
- },
- {
- "name": "ast-v8-to-istanbul",
- "version": "1.0.0",
- "author": "Ari Perkkiö",
- "license": "MIT"
- },
- {
- "name": "async",
- "version": "3.2.6",
- "author": "Caolan McMahon",
- "license": "MIT"
- },
- {
- "name": "async-exit-hook",
- "version": "2.0.1",
- "author": "Tapani Moilanen",
- "license": "MIT"
- },
- {
- "name": "async-function",
- "version": "1.0.0",
- "author": "Jordan Harbamd",
- "license": "MIT"
- },
- {
- "name": "asynckit",
- "version": "0.4.0",
- "author": "Alex Indigo",
- "license": "MIT"
- },
- {
- "name": "at-least-node",
- "version": "1.0.0",
- "author": "Ryan Zimmerman",
- "license": "ISC"
- },
- {
- "name": "available-typed-arrays",
- "version": "1.0.7",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "aws4",
- "version": "1.13.2",
- "author": "Michael Hart",
- "license": "MIT"
- },
- {
- "name": "balanced-match",
- "version": "1.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "base64-js",
- "version": "1.5.1",
- "author": "T. Jameson Little",
- "license": "MIT"
- },
- {
- "name": "bidi-js",
- "version": "1.0.3",
- "author": "Jason Johnston",
- "license": "MIT"
- },
- {
- "name": "bluebird",
- "version": "3.7.2",
- "author": "Petka Antonov",
- "license": "MIT"
- },
- {
- "name": "blueimp-canvas-to-blob",
- "version": "3.29.0",
- "author": "Sebastian Tschan",
- "license": "MIT"
- },
- {
- "name": "boolbase",
- "version": "1.0.0",
- "author": "Felix Boehm",
- "license": "ISC"
- },
- {
- "name": "boolean",
- "version": "3.2.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "brace-expansion",
- "version": "1.1.12",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "buffer-from",
- "version": "1.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "builder-util",
- "version": "26.15.3",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "builder-util-runtime",
- "version": "9.7.0",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "byte-counter",
- "version": "0.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "bytestreamjs",
- "version": "2.0.1",
- "author": "Yury Strozhevsky",
- "license": "BSD-3-Clause"
- },
- {
- "name": "cacheable-lookup",
- "version": "7.0.0",
- "author": "Szymon Marczak",
- "license": "MIT"
- },
- {
- "name": "cacheable-request",
- "version": "13.0.19",
- "author": "Jared Wray",
- "license": "MIT"
- },
- {
- "name": "call-bind",
- "version": "1.0.9",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "call-bind-apply-helpers",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "call-bound",
- "version": "1.0.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "callsites",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "camelcase",
- "version": "5.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "chai",
- "version": "6.2.2",
- "author": "Jake Luer",
- "license": "MIT"
- },
- {
- "name": "chalk",
- "version": "4.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "chownr",
- "version": "3.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "chromium-pickle-js",
- "version": "0.2.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "chunk-data",
- "version": "0.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "ci-info",
- "version": "4.3.1",
- "author": "Thomas Watson Steen",
- "license": "MIT"
- },
- {
- "name": "cli-table3",
- "version": "0.5.0",
- "author": "James Talmage",
- "license": "MIT"
- },
- {
- "name": "cliui",
- "version": "4.0.0",
- "author": "Ben Coe",
- "license": "ISC"
- },
- {
- "name": "code-point-at",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "color-convert",
- "version": "2.0.0",
- "author": "Heather Arthur",
- "license": "MIT"
- },
- {
- "name": "color-name",
- "version": "1.1.4",
- "author": "DY",
- "license": "MIT"
- },
- {
- "name": "colors",
- "version": "1.1.2",
- "author": "Marak Squires",
- "license": "MIT"
- },
- {
- "name": "combined-stream",
- "version": "1.0.8",
- "author": "Felix Geisendörfer",
- "license": "MIT"
- },
- {
- "name": "commander",
- "version": "2.20.0",
- "author": "TJ Holowaychuk",
- "license": "MIT"
- },
- {
- "name": "compare-version",
- "version": "0.1.2",
- "author": "Kevin Mårtensson",
- "license": "MIT"
- },
- {
- "name": "component-emitter",
- "version": "2.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "compressorjs",
- "version": "1.3.0",
- "author": "Chen Fengyuan",
- "license": "MIT"
- },
- {
- "name": "concat-map",
- "version": "0.0.1",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "config-chain",
- "version": "1.1.13",
- "author": "Dominic Tarr",
- "license": "MIT"
- },
- {
- "name": "convert-source-map",
- "version": "2.0.0",
- "author": "Thorsten Lorenz",
- "license": "MIT"
- },
- {
- "name": "core-util-is",
- "version": "1.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "MIT"
- },
- {
- "name": "cross-dirname",
- "version": "0.1.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "cross-env",
- "version": "10.1.0",
- "author": "Kent C. Dodds",
- "license": "MIT"
- },
- {
- "name": "cross-spawn",
- "version": "7.0.5",
- "author": "André Cruz",
- "license": "MIT"
- },
- {
- "name": "css-tree",
- "version": "3.2.1",
- "author": "Roman Dvornov",
- "license": "MIT"
- },
- {
- "name": "cssesc",
- "version": "3.0.0",
- "author": "Mathias Bynens",
- "license": "MIT"
- },
- {
- "name": "csstype",
- "version": "3.2.3",
- "author": "Fredrik Nicol",
- "license": "MIT"
- },
- {
- "name": "data-urls",
- "version": "7.0.0",
- "author": "Domenic Denicola",
- "license": "MIT"
- },
- {
- "name": "data-view-buffer",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "data-view-byte-length",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "data-view-byte-offset",
- "version": "1.0.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "dayjs",
- "version": "1.11.21",
- "author": "iamkun",
- "license": "MIT"
- },
- {
- "name": "debug",
- "version": "4.3.1",
- "author": "TJ Holowaychuk",
- "license": "MIT"
- },
- {
- "name": "decamelize",
- "version": "1.2.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "decimal.js",
- "version": "10.6.0",
- "author": "Michael Mclaughlin",
- "license": "MIT"
- },
- {
- "name": "decompress-response",
- "version": "10.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "deep-is",
- "version": "0.1.3",
- "author": "Thorsten Lorenz",
- "license": "MIT"
- },
- {
- "name": "define-data-property",
- "version": "1.1.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "define-properties",
- "version": "1.2.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "delayed-stream",
- "version": "1.0.0",
- "author": "Felix Geisendörfer",
- "license": "MIT"
- },
- {
- "name": "detect-libc",
- "version": "2.0.3",
- "author": "Lovell Fuller",
- "license": "Apache-2.0"
- },
- {
- "name": "detect-node",
- "version": "2.1.0",
- "author": "Ilya Kantor",
- "license": "MIT"
- },
- {
- "name": "dijkstrajs",
- "version": "1.0.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "dir-compare",
- "version": "4.2.0",
- "author": "Liviu Grigorescu",
- "license": "MIT"
- },
- {
- "name": "dmg-builder",
- "version": "26.15.3",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "dompurify",
- "version": "3.4.11",
- "author": "Dr.-Ing. Mario Heiderich, Cure53",
- "license": "(MPL-2.0 OR Apache-2.0)"
- },
- {
- "name": "dotenv",
- "version": "16.6.1",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "dotenv-expand",
- "version": "11.0.7",
- "author": "motdotla",
- "license": "BSD-2-Clause"
- },
- {
- "name": "dunder-proto",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "duplexer2",
- "version": "0.1.4",
- "author": "Conrad Pankoff",
- "license": "BSD-3-Clause"
- },
- {
- "name": "earcut",
- "version": "3.1.0",
- "author": "Volodymyr Agafonkin",
- "license": "ISC"
- },
- {
- "name": "eastasianwidth",
- "version": "0.2.0",
- "author": "Masaki Komagata",
- "license": "MIT"
- },
- {
- "name": "editorconfig",
- "version": "1.0.7",
- "author": "EditorConfig Team",
- "license": "MIT"
- },
- {
- "name": "ejs",
- "version": "3.1.10",
- "author": "Matthew Eernisse",
- "license": "Apache-2.0"
- },
- {
- "name": "electron",
- "version": "42.4.0",
- "author": "Electron Community",
- "license": "MIT"
- },
- {
- "name": "electron-builder",
- "version": "26.15.3",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "electron-builder-squirrel-windows",
- "version": "26.15.3",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "electron-prompt",
- "version": "1.7.0",
- "author": "p-sam",
- "license": "MIT"
- },
- {
- "name": "electron-publish",
- "version": "26.15.3",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "electron-winstaller",
- "version": "5.4.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "emoji-picker-element",
- "version": "1.29.1",
- "author": "Nolan Lawson",
- "license": "Apache-2.0"
- },
- {
- "name": "emoji-picker-element-data",
- "version": "1.8.0",
- "author": "Nolan Lawson",
- "license": "Apache-2.0"
- },
- {
- "name": "emoji-regex",
- "version": "8.0.0",
- "author": "Mathias Bynens",
- "license": "MIT"
- },
- {
- "name": "enhanced-resolve",
- "version": "5.19.0",
- "author": "Tobias Koppers @sokra",
- "license": "MIT"
- },
- {
- "name": "entities",
- "version": "7.0.1",
- "author": "Felix Boehm",
- "license": "BSD-2-Clause"
- },
- {
- "name": "env-paths",
- "version": "2.2.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "err-code",
- "version": "2.0.3",
- "author": "IndigoUnited",
- "license": "MIT"
- },
- {
- "name": "es-abstract",
- "version": "1.24.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "es-abstract-get",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "es-define-property",
- "version": "1.0.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "es-errors",
- "version": "1.3.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "es-module-lexer",
- "version": "2.2.0",
- "author": "Guy Bedford",
- "license": "MIT"
- },
- {
- "name": "es-object-atoms",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "es-set-tostringtag",
- "version": "2.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "es-to-primitive",
- "version": "1.3.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "es6-error",
- "version": "4.1.1",
- "author": "Ben Youngblood",
- "license": "MIT"
- },
- {
- "name": "escalade",
- "version": "3.1.1",
- "author": "Luke Edwards",
- "license": "MIT"
- },
- {
- "name": "escape-string-regexp",
- "version": "4.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "eslint",
- "version": "9.39.4",
- "author": "Nicholas C. Zakas",
- "license": "MIT"
- },
- {
- "name": "eslint-config-prettier",
- "version": "10.1.8",
- "author": "Simon Lydell",
- "license": "MIT"
- },
- {
- "name": "eslint-plugin-prettier",
- "version": "5.5.6",
- "author": "Teddy Katz",
- "license": "MIT"
- },
- {
- "name": "eslint-plugin-security",
- "version": "3.0.1",
- "author": "Node Security Project",
- "license": "Apache-2.0"
- },
- {
- "name": "eslint-plugin-vue",
- "version": "10.9.2",
- "author": "Toru Nagashima",
- "license": "MIT"
- },
- {
- "name": "eslint-scope",
- "version": "8.2.0",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "eslint-visitor-keys",
- "version": "3.3.0",
- "author": "Toru Nagashima",
- "license": "Apache-2.0"
- },
- {
- "name": "esmangle-evaluator",
- "version": "1.0.0",
- "author": "Andres Suarez",
- "license": "Unknown"
- },
- {
- "name": "espree",
- "version": "10.3.0",
- "author": "Nicholas C. Zakas",
- "license": "BSD-2-Clause"
- },
- {
- "name": "esprima-fb",
- "version": "15001.1001.0-dev-harmony-fb",
- "author": "Ariya Hidayat",
- "license": "BSD"
- },
- {
- "name": "esquery",
- "version": "1.5.0",
- "author": "Joel Feenstra",
- "license": "BSD-3-Clause"
- },
- {
- "name": "esrecurse",
- "version": "4.3.0",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "estraverse",
- "version": "5.1.0",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "estree-walker",
- "version": "2.0.2",
- "author": "Rich Harris",
- "license": "MIT"
- },
- {
- "name": "esutils",
- "version": "2.0.2",
- "author": "—",
- "license": "BSD"
- },
- {
- "name": "execa",
- "version": "0.10.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "expect-type",
- "version": "1.3.0",
- "author": "—",
- "license": "Apache-2.0"
- },
- {
- "name": "exponential-backoff",
- "version": "3.1.1",
- "author": "Sami Sayegh",
- "license": "Apache-2.0"
- },
- {
- "name": "fake-indexeddb",
- "version": "6.2.5",
- "author": "Jeremy Scheff",
- "license": "Apache-2.0"
- },
- {
- "name": "falafel",
- "version": "1.0.1",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "fast-deep-equal",
- "version": "3.1.3",
- "author": "Evgeny Poberezkin",
- "license": "MIT"
- },
- {
- "name": "fast-diff",
- "version": "1.3.0",
- "author": "Jason Chen",
- "license": "Apache-2.0"
- },
- {
- "name": "fast-json-stable-stringify",
- "version": "2.0.0",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "fast-levenshtein",
- "version": "2.0.6",
- "author": "Ramesh Nair",
- "license": "MIT"
- },
- {
- "name": "fast-uri",
- "version": "3.1.2",
- "author": "Vincent Le Goff",
- "license": "BSD-3-Clause"
- },
- {
- "name": "fd-package-json",
- "version": "2.0.0",
- "author": "James Garbutt",
- "license": "MIT"
- },
- {
- "name": "fdir",
- "version": "6.4.3",
- "author": "thecodrr",
- "license": "MIT"
- },
- {
- "name": "fflate",
- "version": "0.8.0",
- "author": "Arjun Barrett",
- "license": "MIT"
- },
- {
- "name": "file-entry-cache",
- "version": "8.0.0",
- "author": "Jared Wray",
- "license": "MIT"
- },
- {
- "name": "filelist",
- "version": "1.0.1",
- "author": "Matthew Eernisse",
- "license": "Apache-2.0"
- },
- {
- "name": "find-up",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "flat-cache",
- "version": "4.0.0",
- "author": "Jared Wray",
- "license": "MIT"
- },
- {
- "name": "flatted",
- "version": "3.4.2",
- "author": "Andrea Giammarchi",
- "license": "ISC"
- },
- {
- "name": "for-each",
- "version": "0.3.5",
- "author": "Raynos",
- "license": "MIT"
- },
- {
- "name": "foreground-child",
- "version": "3.1.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "form-data",
- "version": "4.0.6",
- "author": "Felix Geisendörfer",
- "license": "MIT"
- },
- {
- "name": "formatly",
- "version": "0.3.0",
- "author": "Josh Goldberg ✨",
- "license": "MIT"
- },
- {
- "name": "fs-extra",
- "version": "7.0.1",
- "author": "JP Richardson",
- "license": "MIT"
- },
- {
- "name": "fs.realpath",
- "version": "1.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "function-bind",
- "version": "1.1.1",
- "author": "Raynos",
- "license": "MIT"
- },
- {
- "name": "function.prototype.name",
- "version": "1.2.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "functions-have-names",
- "version": "1.2.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "generator-function",
- "version": "2.0.0",
- "author": "Jordan Harbamd",
- "license": "MIT"
- },
- {
- "name": "geotiff",
- "version": "3.0.5",
- "author": "Fabian Schindler",
- "license": "MIT"
- },
- {
- "name": "get-caller-file",
- "version": "1.0.1",
- "author": "Stefan Penner",
- "license": "ISC"
- },
- {
- "name": "get-intrinsic",
- "version": "1.1.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "get-proto",
- "version": "1.0.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "get-stream",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "get-symbol-description",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "get-tsconfig",
- "version": "4.14.0",
- "author": "Hiroki Osame",
- "license": "MIT"
- },
- {
- "name": "glob",
- "version": "7.2.3",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "glob-parent",
- "version": "6.0.2",
- "author": "Gulp Team",
- "license": "ISC"
- },
- {
- "name": "global-agent",
- "version": "3.0.0",
- "author": "Gajus Kuizinas",
- "license": "BSD-3-Clause"
- },
- {
- "name": "globals",
- "version": "14.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "globalthis",
- "version": "1.0.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "gopd",
- "version": "1.0.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "got",
- "version": "15.0.7",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "graceful-fs",
- "version": "4.1.2",
- "author": "—",
- "license": "ISC"
- },
- {
- "name": "has",
- "version": "1.0.3",
- "author": "Thiago de Arruda",
- "license": "MIT"
- },
- {
- "name": "has-bigints",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "has-flag",
- "version": "4.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "has-property-descriptors",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "has-proto",
- "version": "1.2.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "has-symbols",
- "version": "1.0.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "has-tostringtag",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "hasown",
- "version": "2.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "hosted-git-info",
- "version": "10.1.1",
- "author": "GitHub Inc.",
- "license": "ISC"
- },
- {
- "name": "html-encoding-sniffer",
- "version": "6.0.0",
- "author": "Domenic Denicola",
- "license": "MIT"
- },
- {
- "name": "html-escaper",
- "version": "2.0.0",
- "author": "Andrea Giammarchi",
- "license": "MIT"
- },
- {
- "name": "http-cache-semantics",
- "version": "4.1.1",
- "author": "Kornel Lesiński",
- "license": "BSD-2-Clause"
- },
- {
- "name": "http-proxy-agent",
- "version": "7.0.0",
- "author": "Nathan Rajlich",
- "license": "MIT"
- },
- {
- "name": "http2-wrapper",
- "version": "2.2.1",
- "author": "Szymon Marczak",
- "license": "MIT"
- },
- {
- "name": "https-proxy-agent",
- "version": "7.0.0",
- "author": "Nathan Rajlich",
- "license": "MIT"
- },
- {
- "name": "ignore",
- "version": "5.2.0",
- "author": "kael",
- "license": "MIT"
- },
- {
- "name": "immediate",
- "version": "3.0.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "import-fresh",
- "version": "3.2.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "imurmurhash",
- "version": "0.1.4",
- "author": "Jens Taylor",
- "license": "MIT"
- },
- {
- "name": "inflight",
- "version": "1.0.4",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "inherits",
- "version": "2.0.1",
- "author": "—",
- "license": "ISC"
- },
- {
- "name": "inherits",
- "version": "2.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "WTFPL2"
- },
- {
- "name": "ini",
- "version": "1.3.6",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "inline-process-browser",
- "version": "1.0.0",
- "author": "Calvin W. Metcalf",
- "license": "MIT"
- },
- {
- "name": "internal-slot",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "invert-kv",
- "version": "2.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "is-array-buffer",
- "version": "3.0.5",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-async-function",
- "version": "2.1.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-bigint",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-blob",
- "version": "2.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "is-boolean-object",
- "version": "1.2.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-callable",
- "version": "1.2.7",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-data-view",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-date-object",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-document.all",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-extglob",
- "version": "2.1.1",
- "author": "Jon Schlinkert",
- "license": "MIT"
- },
- {
- "name": "is-finalizationregistry",
- "version": "1.1.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-fullwidth-code-point",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "is-generator-function",
- "version": "1.1.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-glob",
- "version": "4.0.0",
- "author": "Jon Schlinkert",
- "license": "MIT"
- },
- {
- "name": "is-map",
- "version": "2.0.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-negative-zero",
- "version": "2.0.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-number-object",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-potential-custom-element-name",
- "version": "1.0.1",
- "author": "Mathias Bynens",
- "license": "MIT"
- },
- {
- "name": "is-regex",
- "version": "1.2.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-set",
- "version": "2.0.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-shared-array-buffer",
- "version": "1.0.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-stream",
- "version": "1.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "is-string",
- "version": "1.1.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-symbol",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-typed-array",
- "version": "1.1.15",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-weakmap",
- "version": "2.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-weakref",
- "version": "1.1.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "is-weakset",
- "version": "2.0.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "isarray",
- "version": "0.0.1",
- "author": "Julian Gruber",
- "license": "MIT"
- },
- {
- "name": "isbinaryfile",
- "version": "4.0.8",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "isexe",
- "version": "2.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "istanbul-lib-coverage",
- "version": "3.2.2",
- "author": "Krishnan Anantheswaran",
- "license": "BSD-3-Clause"
- },
- {
- "name": "istanbul-lib-report",
- "version": "3.0.1",
- "author": "Krishnan Anantheswaran",
- "license": "BSD-3-Clause"
- },
- {
- "name": "istanbul-reports",
- "version": "3.2.0",
- "author": "Krishnan Anantheswaran",
- "license": "BSD-3-Clause"
- },
- {
- "name": "jackspeak",
- "version": "3.1.2",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "jake",
- "version": "10.8.5",
- "author": "Matthew Eernisse",
- "license": "Apache-2.0"
- },
- {
- "name": "jiti",
- "version": "2.4.2",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "js-beautify",
- "version": "1.15.4",
- "author": "Einar Lielmanis",
- "license": "MIT"
- },
- {
- "name": "js-cookie",
- "version": "3.0.8",
- "author": "Klaus Hartl",
- "license": "MIT"
- },
- {
- "name": "js-tokens",
- "version": "10.0.0",
- "author": "Simon Lydell",
- "license": "MIT"
- },
- {
- "name": "js-yaml",
- "version": "4.2.0",
- "author": "Vladimir Zapparov",
- "license": "MIT"
- },
- {
- "name": "jsdom",
- "version": "29.1.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "json-buffer",
- "version": "3.0.1",
- "author": "Dominic Tarr",
- "license": "MIT"
- },
- {
- "name": "json-schema-traverse",
- "version": "0.4.1",
- "author": "Evgeny Poberezkin",
- "license": "MIT"
- },
- {
- "name": "json-stable-stringify-without-jsonify",
- "version": "1.0.1",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "json-stringify-pretty-compact",
- "version": "4.0.0",
- "author": "Simon Lydell",
- "license": "MIT"
- },
- {
- "name": "json-stringify-safe",
- "version": "5.0.1",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "json5",
- "version": "2.2.3",
- "author": "Aseem Kishore",
- "license": "MIT"
- },
- {
- "name": "jsonfile",
- "version": "4.0.0",
- "author": "JP Richardson",
- "license": "MIT"
- },
- {
- "name": "jsqr",
- "version": "1.4.0",
- "author": "—",
- "license": "Apache-2.0"
- },
- {
- "name": "jszip",
- "version": "3.10.1",
- "author": "Stuart Knightley",
- "license": "(MIT OR GPL-3.0-or-later)"
- },
- {
- "name": "keycharm",
- "version": "0.4.0",
- "author": "Alex de Mulder",
- "license": "(Apache-2.0 OR MIT)"
- },
- {
- "name": "keyv",
- "version": "4.5.4",
- "author": "Jared Wray",
- "license": "MIT"
- },
- {
- "name": "knip",
- "version": "6.24.0",
- "author": "Lars Kappert",
- "license": "ISC"
- },
- {
- "name": "lazy-val",
- "version": "1.0.5",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "lcid",
- "version": "2.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "lerc",
- "version": "3.0.0",
- "author": "Esri",
- "license": "Apache-2.0"
- },
- {
- "name": "levn",
- "version": "0.4.1",
- "author": "George Zahariev",
- "license": "MIT"
- },
- {
- "name": "lie",
- "version": "3.3.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "lightningcss",
- "version": "1.32.0",
- "author": "—",
- "license": "MPL-2.0"
- },
- {
- "name": "lightningcss-linux-x64-gnu",
- "version": "1.32.0",
- "author": "—",
- "license": "MPL-2.0"
- },
- {
- "name": "locate-path",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "lodash",
- "version": "4.18.0",
- "author": "John-David Dalton",
- "license": "MIT"
- },
- {
- "name": "lodash.merge",
- "version": "4.6.2",
- "author": "John-David Dalton",
- "license": "MIT"
- },
- {
- "name": "lowercase-keys",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "lru-cache",
- "version": "6.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "lru-cache",
- "version": "11.3.5",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "magic-string",
- "version": "0.30.21",
- "author": "Rich Harris",
- "license": "MIT"
- },
- {
- "name": "magicast",
- "version": "0.5.2",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "make-dir",
- "version": "4.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "mapbox-to-css-font",
- "version": "3.2.0",
- "author": "Andreas Hocevar",
- "license": "BSD-2-Clause"
- },
- {
- "name": "marked",
- "version": "18.0.5",
- "author": "Christopher Jeffrey",
- "license": "MIT"
- },
- {
- "name": "matcher",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "math-intrinsics",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "mdn-data",
- "version": "2.27.1",
- "author": "Mozilla Developer Network",
- "license": "CC0-1.0"
- },
- {
- "name": "mem",
- "version": "3.0.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "micron-parser",
- "version": "0.0.0",
- "author": "—",
- "license": "Unknown"
- },
- {
- "name": "mime",
- "version": "2.6.0",
- "author": "Robert Kieffer",
- "license": "MIT"
- },
- {
- "name": "mime-db",
- "version": "1.52.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "mime-types",
- "version": "2.1.35",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "mimic-fn",
- "version": "1.2.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "mimic-response",
- "version": "4.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "mini-svg-data-uri",
- "version": "1.2.3",
- "author": "Taylor “Tigt” Hunt",
- "license": "MIT"
- },
- {
- "name": "minimatch",
- "version": "3.1.4",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "minimatch",
- "version": "10.2.3",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "minimist",
- "version": "1.2.8",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "minipass",
- "version": "7.1.2",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "minizlib",
- "version": "3.1.0",
- "author": "Isaac Z. Schlueter",
- "license": "MIT"
- },
- {
- "name": "mkdirp",
- "version": "0.5.1",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "mrmime",
- "version": "2.0.0",
- "author": "Luke Edwards",
- "license": "MIT"
- },
- {
- "name": "ms",
- "version": "2.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "muggle-string",
- "version": "0.4.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "nanoid",
- "version": "3.3.12",
- "author": "Andrey Sitnik",
- "license": "MIT"
- },
- {
- "name": "natural-compare",
- "version": "1.4.0",
- "author": "Lauri Rooden",
- "license": "MIT"
- },
- {
- "name": "node-abi",
- "version": "4.31.0",
- "author": "Lukas Geiger",
- "license": "MIT"
- },
- {
- "name": "node-api-version",
- "version": "0.2.1",
- "author": "Tim Fish",
- "license": "MIT"
- },
- {
- "name": "node-gyp",
- "version": "12.4.0",
- "author": "Nathan Rajlich",
- "license": "MIT"
- },
- {
- "name": "node-int64",
- "version": "0.4.0",
- "author": "Robert Kieffer",
- "license": "MIT"
- },
- {
- "name": "nopt",
- "version": "7.2.1",
- "author": "GitHub Inc.",
- "license": "ISC"
- },
- {
- "name": "normalize-url",
- "version": "8.1.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "npm-run-path",
- "version": "2.0.2",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "nth-check",
- "version": "2.1.1",
- "author": "Felix Boehm",
- "license": "BSD-2-Clause"
- },
- {
- "name": "number-is-nan",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "numcodecs",
- "version": "0.3.2",
- "author": "Trevor Manz",
- "license": "MIT"
- },
- {
- "name": "object-assign",
- "version": "4.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "object-inspect",
- "version": "1.13.4",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "object-keys",
- "version": "1.1.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "object.assign",
- "version": "4.1.7",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "obug",
- "version": "2.1.1",
- "author": "Kevin Deng",
- "license": "MIT"
- },
- {
- "name": "ol",
- "version": "10.9.0",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "ol-mapbox-style",
- "version": "13.4.1",
- "author": "—",
- "license": "BSD-2-Clause"
- },
- {
- "name": "once",
- "version": "1.4.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "optionator",
- "version": "0.9.3",
- "author": "George Zahariev",
- "license": "MIT"
- },
- {
- "name": "os-locale",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "own-keys",
- "version": "1.0.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "oxc-parser",
- "version": "0.137.0",
- "author": "Boshen and oxc contributors",
- "license": "MIT"
- },
- {
- "name": "oxc-resolver",
- "version": "11.21.3",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "p-finally",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "p-is-promise",
- "version": "1.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "p-limit",
- "version": "2.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "p-locate",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "p-try",
- "version": "2.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "package-json-from-dist",
- "version": "1.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "pako",
- "version": "1.0.2",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "pako",
- "version": "2.0.4",
- "author": "—",
- "license": "(MIT AND Zlib)"
- },
- {
- "name": "parent-module",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "parse-headers",
- "version": "2.0.2",
- "author": "David Björklund",
- "license": "MIT"
- },
- {
- "name": "parse5",
- "version": "8.0.1",
- "author": "Ivan Nikulin",
- "license": "MIT"
- },
- {
- "name": "path-browserify",
- "version": "1.0.1",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "path-exists",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "path-is-absolute",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "path-key",
- "version": "2.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "path-scurry",
- "version": "1.11.1",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "pathe",
- "version": "2.0.3",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "pbf",
- "version": "4.0.1",
- "author": "Konstantin Kaefer",
- "license": "BSD-3-Clause"
- },
- {
- "name": "pe-library",
- "version": "0.4.1",
- "author": "jet",
- "license": "MIT"
- },
- {
- "name": "picocolors",
- "version": "1.1.1",
- "author": "Alexey Raspopov",
- "license": "ISC"
- },
- {
- "name": "picomatch",
- "version": "4.0.4",
- "author": "Jon Schlinkert",
- "license": "MIT"
- },
- {
- "name": "pkijs",
- "version": "3.4.0",
- "author": "Yury Strozhevsky",
- "license": "BSD-3-Clause"
- },
- {
- "name": "playwright",
- "version": "1.61.1",
- "author": "Microsoft Corporation",
- "license": "Apache-2.0"
- },
- {
- "name": "playwright-core",
- "version": "1.61.1",
- "author": "Microsoft Corporation",
- "license": "Apache-2.0"
- },
- {
- "name": "plist",
- "version": "3.0.5",
- "author": "Nathan Rajlich",
- "license": "MIT"
- },
- {
- "name": "pngjs",
- "version": "5.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "possible-typed-array-names",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "postcss",
- "version": "8.5.15",
- "author": "Andrey Sitnik",
- "license": "MIT"
- },
- {
- "name": "postcss-selector-parser",
- "version": "7.1.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "postject",
- "version": "1.0.0-alpha.6",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "prelude-ls",
- "version": "1.2.1",
- "author": "George Zahariev",
- "license": "MIT"
- },
- {
- "name": "prettier",
- "version": "3.9.3",
- "author": "James Long",
- "license": "MIT"
- },
- {
- "name": "prettier-linter-helpers",
- "version": "1.0.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "private",
- "version": "0.1.5",
- "author": "Ben Newman",
- "license": "MIT"
- },
- {
- "name": "proc-log",
- "version": "6.1.0",
- "author": "GitHub Inc.",
- "license": "ISC"
- },
- {
- "name": "process-nextick-args",
- "version": "1.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "progress",
- "version": "2.0.3",
- "author": "TJ Holowaychuk",
- "license": "MIT"
- },
- {
- "name": "promise-retry",
- "version": "2.0.1",
- "author": "IndigoUnited",
- "license": "MIT"
- },
- {
- "name": "proper-lockfile",
- "version": "4.1.2",
- "author": "André Cruz",
- "license": "MIT"
- },
- {
- "name": "proto-list",
- "version": "1.2.4",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "protocol-buffers-schema",
- "version": "3.6.1",
- "author": "Mathias Buus",
- "license": "MIT"
- },
- {
- "name": "punycode",
- "version": "2.1.0",
- "author": "Mathias Bynens",
- "license": "MIT"
- },
- {
- "name": "pvtsutils",
- "version": "1.3.6",
- "author": "PeculiarVentures",
- "license": "MIT"
- },
- {
- "name": "pvutils",
- "version": "1.1.5",
- "author": "Yury Strozhevsky",
- "license": "MIT"
- },
- {
- "name": "qrcode",
- "version": "1.5.4",
- "author": "Ryan Day",
- "license": "MIT"
- },
- {
- "name": "quick-lru",
- "version": "5.1.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "quickselect",
- "version": "2.0.0",
- "author": "Vladimir Agafonkin",
- "license": "ISC"
- },
- {
- "name": "rbush",
- "version": "4.0.0",
- "author": "Volodymyr Agafonkin",
- "license": "MIT"
- },
- {
- "name": "read-binary-file-arch",
- "version": "1.0.6",
- "author": "Samuel Maddock",
- "license": "MIT"
- },
- {
- "name": "readable-stream",
- "version": "1.0.31",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "recast",
- "version": "0.10.43",
- "author": "Ben Newman",
- "license": "MIT"
- },
- {
- "name": "reference-spec-reader",
- "version": "0.2.0",
- "author": "manzt",
- "license": "MIT"
- },
- {
- "name": "reflect.getprototypeof",
- "version": "1.0.10",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "regexp-tree",
- "version": "0.1.1",
- "author": "Dmitry Soshnikov",
- "license": "MIT"
- },
- {
- "name": "regexp.prototype.flags",
- "version": "1.5.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "require-directory",
- "version": "2.1.1",
- "author": "Troy Goode",
- "license": "MIT"
- },
- {
- "name": "require-from-string",
- "version": "2.0.2",
- "author": "Vsevolod Strukchinsky",
- "license": "MIT"
- },
- {
- "name": "require-main-filename",
- "version": "1.0.1",
- "author": "Ben Coe",
- "license": "ISC"
- },
- {
- "name": "resedit",
- "version": "1.7.2",
- "author": "jet",
- "license": "MIT"
- },
- {
- "name": "resolve-alpn",
- "version": "1.2.1",
- "author": "Szymon Marczak",
- "license": "MIT"
- },
- {
- "name": "resolve-from",
- "version": "4.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "resolve-pkg-maps",
- "version": "1.0.0",
- "author": "Hiroki Osame",
- "license": "MIT"
- },
- {
- "name": "resolve-protobuf-schema",
- "version": "2.1.0",
- "author": "Mathias Buus",
- "license": "MIT"
- },
- {
- "name": "responselike",
- "version": "4.0.2",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "retry",
- "version": "0.12.0",
- "author": "Tim Koschützki",
- "license": "MIT"
- },
- {
- "name": "rimraf",
- "version": "2.6.2",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "roarr",
- "version": "2.15.4",
- "author": "Gajus Kuizinas",
- "license": "BSD-3-Clause"
- },
- {
- "name": "rolldown",
- "version": "1.0.3",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "safe-array-concat",
- "version": "1.1.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "safe-buffer",
- "version": "5.1.1",
- "author": "Feross Aboukhadijeh",
- "license": "MIT"
- },
- {
- "name": "safe-push-apply",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "safe-regex",
- "version": "2.1.1",
- "author": "James C.",
- "license": "MIT"
- },
- {
- "name": "safe-regex-test",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "sanitize-filename",
- "version": "1.6.4",
- "author": "Parsha Pourkhomami",
- "license": "WTFPL OR ISC"
- },
- {
- "name": "sax",
- "version": "1.2.4",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "saxes",
- "version": "6.0.0",
- "author": "Louis-Dominique Dubeau",
- "license": "ISC"
- },
- {
- "name": "semver",
- "version": "7.5.2",
- "author": "GitHub Inc.",
- "license": "ISC"
- },
- {
- "name": "semver-compare",
- "version": "1.0.0",
- "author": "James Halliday",
- "license": "MIT"
- },
- {
- "name": "serialize-error",
- "version": "7.0.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "set-blocking",
- "version": "2.0.0",
- "author": "Ben Coe",
- "license": "ISC"
- },
- {
- "name": "set-function-length",
- "version": "1.2.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "set-function-name",
- "version": "2.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "set-proto",
- "version": "1.0.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "setimmediate",
- "version": "1.0.5",
- "author": "YuzuJS",
- "license": "MIT"
- },
- {
- "name": "shebang-command",
- "version": "2.0.0",
- "author": "Kevin Mårtensson",
- "license": "MIT"
- },
- {
- "name": "shebang-regex",
- "version": "3.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "side-channel",
- "version": "1.1.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "side-channel-list",
- "version": "1.0.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "side-channel-map",
- "version": "1.0.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "side-channel-weakmap",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "siginfo",
- "version": "2.0.0",
- "author": "Emil Bay",
- "license": "ISC"
- },
- {
- "name": "signal-exit",
- "version": "3.0.0",
- "author": "Ben Coe",
- "license": "ISC"
- },
- {
- "name": "simple-update-notifier",
- "version": "2.0.0",
- "author": "alexbrazier",
- "license": "MIT"
- },
- {
- "name": "sirv",
- "version": "3.0.2",
- "author": "Luke Edwards",
- "license": "MIT"
- },
- {
- "name": "smol-toml",
- "version": "1.7.0",
- "author": "Cynthia Rey",
- "license": "BSD-3-Clause"
- },
- {
- "name": "source-map",
- "version": "0.5.0",
- "author": "Nick Fitzgerald",
- "license": "BSD-3-Clause"
- },
- {
- "name": "source-map-js",
- "version": "1.0.2",
- "author": "Valentin 7rulnik Semirulnik",
- "license": "BSD-3-Clause"
- },
- {
- "name": "source-map-support",
- "version": "0.5.19",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "sprintf-js",
- "version": "1.1.3",
- "author": "Alexandru Mărășteanu",
- "license": "BSD-3-Clause"
- },
- {
- "name": "stackback",
- "version": "0.0.2",
- "author": "Roman Shtylman",
- "license": "MIT"
- },
- {
- "name": "stat-mode",
- "version": "1.0.0",
- "author": "Nathan Rajlich",
- "license": "MIT"
- },
- {
- "name": "std-env",
- "version": "4.0.0-rc.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "stop-iteration-iterator",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "string-width",
- "version": "1.0.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "string.prototype.trim",
- "version": "1.2.11",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "string.prototype.trimend",
- "version": "1.0.10",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "string.prototype.trimstart",
- "version": "1.0.8",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "string_decoder",
- "version": "0.10.24",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "strip-ansi",
- "version": "6.0.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "strip-eof",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "strip-json-comments",
- "version": "3.1.1",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "sumchecker",
- "version": "3.0.1",
- "author": "Mark Lee",
- "license": "Apache-2.0"
- },
- {
- "name": "supports-color",
- "version": "7.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "symbol-tree",
- "version": "3.2.4",
- "author": "Joris van der Wel",
- "license": "MIT"
- },
- {
- "name": "synckit",
- "version": "0.11.13",
- "author": "JounQin",
- "license": "MIT"
- },
- {
- "name": "tagged-tag",
- "version": "1.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "tailwindcss",
- "version": "4.2.4",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "tapable",
- "version": "2.3.0",
- "author": "Tobias Koppers @sokra",
- "license": "MIT"
- },
- {
- "name": "tar",
- "version": "7.5.19",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "temp",
- "version": "0.9.4",
- "author": "Bruce Williams",
- "license": "MIT"
- },
- {
- "name": "temp-file",
- "version": "3.4.0",
- "author": "Vladimir Krivosheev",
- "license": "MIT"
- },
- {
- "name": "terser",
- "version": "5.48.0",
- "author": "Mihai Bazon",
- "license": "BSD-2-Clause"
- },
- {
- "name": "through2",
- "version": "0.6.2",
- "author": "Rod Vagg",
- "license": "MIT"
- },
- {
- "name": "tiny-async-pool",
- "version": "1.3.0",
- "author": "Rafael Xavier de Souza",
- "license": "MIT"
- },
- {
- "name": "tinybench",
- "version": "2.9.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "tinyexec",
- "version": "1.0.2",
- "author": "James Garbutt",
- "license": "MIT"
- },
- {
- "name": "tinyglobby",
- "version": "0.2.12",
- "author": "Superchupu",
- "license": "MIT"
- },
- {
- "name": "tinyqueue",
- "version": "3.0.0",
- "author": "—",
- "license": "ISC"
- },
- {
- "name": "tinyrainbow",
- "version": "3.1.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "tldts",
- "version": "7.4.5",
- "author": "Rémi Berson",
- "license": "MIT"
- },
- {
- "name": "tldts-core",
- "version": "7.4.5",
- "author": "Rémi Berson",
- "license": "MIT"
- },
- {
- "name": "tmp",
- "version": "0.2.7",
- "author": "KARASZI István",
- "license": "MIT"
- },
- {
- "name": "tmp-promise",
- "version": "3.0.3",
- "author": "Benjamin Gruenbaum and Collaborators.",
- "license": "MIT"
- },
- {
- "name": "totalist",
- "version": "3.0.0",
- "author": "Luke Edwards",
- "license": "MIT"
- },
- {
- "name": "tough-cookie",
- "version": "6.0.1",
- "author": "Jeremy Stashewsky",
- "license": "BSD-3-Clause"
- },
- {
- "name": "tr46",
- "version": "6.0.0",
- "author": "Sebastian Mayr",
- "license": "MIT"
- },
- {
- "name": "truncate-utf8-bytes",
- "version": "1.0.2",
- "author": "Carl Xiong",
- "license": "WTFPL"
- },
- {
- "name": "tslib",
- "version": "2.4.0",
- "author": "Microsoft Corp.",
- "license": "0BSD"
- },
- {
- "name": "type-check",
- "version": "0.4.0",
- "author": "George Zahariev",
- "license": "MIT"
- },
- {
- "name": "type-fest",
- "version": "0.13.1",
- "author": "Sindre Sorhus",
- "license": "(MIT OR CC0-1.0)"
- },
- {
- "name": "typed-array-buffer",
- "version": "1.0.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "typed-array-byte-length",
- "version": "1.0.3",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "typed-array-byte-offset",
- "version": "1.0.4",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "typed-array-length",
- "version": "1.0.8",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "typescript",
- "version": "6.0.3",
- "author": "Microsoft Corp.",
- "license": "Apache-2.0"
- },
- {
- "name": "uint8array-extras",
- "version": "1.5.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "unbash",
- "version": "4.0.2",
- "author": "Lars Kappert",
- "license": "ISC"
- },
- {
- "name": "unbox-primitive",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "undici",
- "version": "7.28.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "undici-types",
- "version": "7.16.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "universalify",
- "version": "0.1.0",
- "author": "Ryan Zimmerman",
- "license": "MIT"
- },
- {
- "name": "unreachable-branch-transform",
- "version": "0.3.0",
- "author": "Andres Suarez",
- "license": "MIT"
- },
- {
- "name": "unzipit",
- "version": "2.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "unzipper",
- "version": "0.12.5",
- "author": "Ziggy Jonsson",
- "license": "MIT"
- },
- {
- "name": "upath",
- "version": "2.0.1",
- "author": "Angelos Pikoulas",
- "license": "MIT"
- },
- {
- "name": "uri-js",
- "version": "4.2.2",
- "author": "Gary Court",
- "license": "BSD-2-Clause"
- },
- {
- "name": "utf8-byte-length",
- "version": "1.0.5",
- "author": "Carl Xiong",
- "license": "(WTFPL OR MIT)"
- },
- {
- "name": "util-deprecate",
- "version": "1.0.1",
- "author": "Nathan Rajlich",
- "license": "MIT"
- },
- {
- "name": "uuid",
- "version": "14.0.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "vis-data",
- "version": "7.1.10",
- "author": "—",
- "license": "(Apache-2.0 OR MIT)"
- },
- {
- "name": "vis-network",
- "version": "9.1.13",
- "author": "—",
- "license": "(Apache-2.0 OR MIT)"
- },
- {
- "name": "vis-util",
- "version": "5.0.7",
- "author": "Alex de Mulder",
- "license": "(Apache-2.0 OR MIT)"
- },
- {
- "name": "vite",
- "version": "8.0.16",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "vite-plugin-vuetify",
- "version": "2.1.3",
- "author": "Kael Watts-Deuchar",
- "license": "MIT"
- },
- {
- "name": "vitest",
- "version": "4.1.5",
- "author": "Anthony Fu",
- "license": "MIT"
- },
- {
- "name": "vscode-uri",
- "version": "3.1.0",
- "author": "Microsoft",
- "license": "MIT"
- },
- {
- "name": "vue",
- "version": "3.5.39",
- "author": "Evan You",
- "license": "MIT"
- },
- {
- "name": "vue-component-type-helpers",
- "version": "3.3.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "vue-eslint-parser",
- "version": "10.4.1",
- "author": "Toru Nagashima",
- "license": "MIT"
- },
- {
- "name": "vue-i18n",
- "version": "11.4.6",
- "author": "kazuya kawaguchi",
- "license": "MIT"
- },
- {
- "name": "vue-router",
- "version": "4.6.4",
- "author": "Eduardo San Martin Morote",
- "license": "MIT"
- },
- {
- "name": "vue-tsc",
- "version": "3.3.6",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "vuetify",
- "version": "3.12.8",
- "author": "John Leider",
- "license": "MIT"
- },
- {
- "name": "w3c-xmlserializer",
- "version": "5.0.0",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "walk-up-path",
- "version": "4.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "web-worker",
- "version": "1.5.0",
- "author": "—",
- "license": "Apache-2.0"
- },
- {
- "name": "webcrypto-core",
- "version": "1.9.2",
- "author": "PeculiarVentures",
- "license": "MIT"
- },
- {
- "name": "webidl-conversions",
- "version": "8.0.1",
- "author": "Domenic Denicola",
- "license": "BSD-2-Clause"
- },
- {
- "name": "whatwg-mimetype",
- "version": "5.0.0",
- "author": "Domenic Denicola",
- "license": "MIT"
- },
- {
- "name": "whatwg-url",
- "version": "16.0.1",
- "author": "Sebastian Mayr",
- "license": "MIT"
- },
- {
- "name": "which",
- "version": "2.0.1",
- "author": "GitHub Inc.",
- "license": "ISC"
- },
- {
- "name": "which-boxed-primitive",
- "version": "1.1.0",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "which-builtin-type",
- "version": "1.2.1",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "which-collection",
- "version": "1.0.2",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "which-module",
- "version": "2.0.0",
- "author": "nexdrew",
- "license": "ISC"
- },
- {
- "name": "which-typed-array",
- "version": "1.1.22",
- "author": "Jordan Harband",
- "license": "MIT"
- },
- {
- "name": "why-is-node-running",
- "version": "2.3.0",
- "author": "Mathias Buus",
- "license": "MIT"
- },
- {
- "name": "wrap-ansi",
- "version": "2.0.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "wrappy",
- "version": "1.0.2",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "xml-name-validator",
- "version": "4.0.0",
- "author": "Domenic Denicola",
- "license": "Apache-2.0"
- },
- {
- "name": "xml-utils",
- "version": "1.10.2",
- "author": "Daniel J. Dufour",
- "license": "CC0-1.0"
- },
- {
- "name": "xmlbuilder",
- "version": "9.0.7",
- "author": "Ozgur Ozcitak",
- "license": "MIT"
- },
- {
- "name": "xmlchars",
- "version": "2.2.0",
- "author": "Louis-Dominique Dubeau",
- "license": "MIT"
- },
- {
- "name": "xtend",
- "version": "4.0.0",
- "author": "Raynos",
- "license": "MIT"
- },
- {
- "name": "y18n",
- "version": "5.0.5",
- "author": "Ben Coe",
- "license": "ISC"
- },
- {
- "name": "yallist",
- "version": "4.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "ISC"
- },
- {
- "name": "yallist",
- "version": "5.0.0",
- "author": "Isaac Z. Schlueter",
- "license": "BlueOak-1.0.0"
- },
- {
- "name": "yaml",
- "version": "2.9.0",
- "author": "Eemeli Aro",
- "license": "ISC"
- },
- {
- "name": "yargs",
- "version": "12.0.5",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "yargs-parser",
- "version": "18.1.1",
- "author": "Ben Coe",
- "license": "ISC"
- },
- {
- "name": "yocto-queue",
- "version": "0.1.0",
- "author": "Sindre Sorhus",
- "license": "MIT"
- },
- {
- "name": "zarrita",
- "version": "0.7.1",
- "author": "—",
- "license": "MIT"
- },
- {
- "name": "zod",
- "version": "4.4.3",
- "author": "Colin McDonnell",
- "license": "MIT"
- },
- {
- "name": "zstddec",
- "version": "0.2.0",
- "author": "Don McCurdy",
- "license": "MIT AND BSD-3-Clause"
- }
+ {
+ "name": "@aashutoshrathi/word-wrap",
+ "version": "1.2.6",
+ "author": "Jon Schlinkert",
+ "license": "MIT"
+ },
+ {
+ "name": "@asamuzakjp/css-color",
+ "version": "5.1.11",
+ "author": "asamuzaK",
+ "license": "MIT"
+ },
+ {
+ "name": "@asamuzakjp/dom-selector",
+ "version": "7.1.1",
+ "author": "asamuzaK",
+ "license": "MIT"
+ },
+ {
+ "name": "@asamuzakjp/generational-cache",
+ "version": "1.0.1",
+ "author": "asamuzaK",
+ "license": "MIT"
+ },
+ {
+ "name": "@asamuzakjp/nwsapi",
+ "version": "2.3.9",
+ "author": "Diego Perini",
+ "license": "MIT"
+ },
+ {
+ "name": "@babel/helper-string-parser",
+ "version": "7.27.1",
+ "author": "The Babel Team",
+ "license": "MIT"
+ },
+ {
+ "name": "@babel/helper-validator-identifier",
+ "version": "7.28.5",
+ "author": "The Babel Team",
+ "license": "MIT"
+ },
+ {
+ "name": "@babel/parser",
+ "version": "7.29.0",
+ "author": "The Babel Team",
+ "license": "MIT"
+ },
+ {
+ "name": "@babel/types",
+ "version": "7.29.0",
+ "author": "The Babel Team",
+ "license": "MIT"
+ },
+ {
+ "name": "@bcoe/v8-coverage",
+ "version": "1.0.2",
+ "author": "Charles Samborski",
+ "license": "MIT"
+ },
+ {
+ "name": "@bramus/specificity",
+ "version": "2.4.2",
+ "author": "Bramus Van Damme",
+ "license": "MIT"
+ },
+ {
+ "name": "@csstools/color-helpers",
+ "version": "6.0.2",
+ "author": "—",
+ "license": "MIT-0"
+ },
+ {
+ "name": "@csstools/css-calc",
+ "version": "3.2.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@csstools/css-color-parser",
+ "version": "4.1.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@csstools/css-parser-algorithms",
+ "version": "4.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@csstools/css-syntax-patches-for-csstree",
+ "version": "1.1.6",
+ "author": "—",
+ "license": "MIT-0"
+ },
+ {
+ "name": "@csstools/css-tokenizer",
+ "version": "4.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@egjs/hammerjs",
+ "version": "2.0.17",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@electron-internal/extract-zip",
+ "version": "1.0.4",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "@electron/asar",
+ "version": "3.4.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@electron/fuses",
+ "version": "1.8.0",
+ "author": "Electron Community",
+ "license": "MIT"
+ },
+ {
+ "name": "@electron/get",
+ "version": "3.1.0",
+ "author": "Samuel Attard",
+ "license": "MIT"
+ },
+ {
+ "name": "@electron/notarize",
+ "version": "2.5.0",
+ "author": "Samuel Attard",
+ "license": "MIT"
+ },
+ {
+ "name": "@electron/osx-sign",
+ "version": "1.3.3",
+ "author": "electron",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "@electron/rebuild",
+ "version": "4.0.6",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@electron/universal",
+ "version": "2.0.3",
+ "author": "Samuel Attard",
+ "license": "MIT"
+ },
+ {
+ "name": "@electron/windows-sign",
+ "version": "1.1.2",
+ "author": "Felix Rieseberg",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "@epic-web/invariant",
+ "version": "1.0.0",
+ "author": "Kent C. Dodds",
+ "license": "MIT"
+ },
+ {
+ "name": "@eslint-community/eslint-utils",
+ "version": "4.4.0",
+ "author": "Toru Nagashima",
+ "license": "MIT"
+ },
+ {
+ "name": "@eslint-community/regexpp",
+ "version": "4.12.1",
+ "author": "Toru Nagashima",
+ "license": "MIT"
+ },
+ {
+ "name": "@eslint/config-array",
+ "version": "0.21.2",
+ "author": "Nicholas C. Zakas",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@eslint/config-helpers",
+ "version": "0.4.2",
+ "author": "—",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@eslint/core",
+ "version": "0.17.0",
+ "author": "Nicholas C. Zakas",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@eslint/eslintrc",
+ "version": "3.3.5",
+ "author": "Nicholas C. Zakas",
+ "license": "MIT"
+ },
+ {
+ "name": "@eslint/js",
+ "version": "9.39.4",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@eslint/object-schema",
+ "version": "2.1.7",
+ "author": "Nicholas C. Zakas",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@eslint/plugin-kit",
+ "version": "0.4.1",
+ "author": "Nicholas C. Zakas",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@exodus/bytes",
+ "version": "1.15.0",
+ "author": "Exodus Movement, Inc.",
+ "license": "MIT"
+ },
+ {
+ "name": "@fontsource/noto-sans",
+ "version": "5.2.10",
+ "author": "Google Inc.",
+ "license": "OFL-1.1"
+ },
+ {
+ "name": "@humanfs/core",
+ "version": "0.19.1",
+ "author": "Nicholas C. Zakas",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@humanfs/node",
+ "version": "0.16.6",
+ "author": "Nicholas C. Zakas",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@humanwhocodes/module-importer",
+ "version": "1.0.1",
+ "author": "Nicholas C. Zaks",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@humanwhocodes/retry",
+ "version": "0.3.0",
+ "author": "Nicholas C. Zaks",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@intlify/core-base",
+ "version": "11.4.6",
+ "author": "kazuya kawaguchi",
+ "license": "MIT"
+ },
+ {
+ "name": "@intlify/devtools-types",
+ "version": "11.4.6",
+ "author": "kazuya kawaguchi",
+ "license": "MIT"
+ },
+ {
+ "name": "@intlify/message-compiler",
+ "version": "11.4.6",
+ "author": "kazuya kawaguchi",
+ "license": "MIT"
+ },
+ {
+ "name": "@intlify/shared",
+ "version": "11.4.6",
+ "author": "kazuya kawaguchi",
+ "license": "MIT"
+ },
+ {
+ "name": "@isaacs/cliui",
+ "version": "8.0.2",
+ "author": "Ben Coe",
+ "license": "ISC"
+ },
+ {
+ "name": "@isaacs/cliui",
+ "version": "9.0.0",
+ "author": "—",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "@isaacs/fs-minipass",
+ "version": "4.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "@jridgewell/gen-mapping",
+ "version": "0.3.0",
+ "author": "Justin Ridgewell",
+ "license": "MIT"
+ },
+ {
+ "name": "@jridgewell/remapping",
+ "version": "2.3.5",
+ "author": "Justin Ridgewell",
+ "license": "MIT"
+ },
+ {
+ "name": "@jridgewell/resolve-uri",
+ "version": "3.0.3",
+ "author": "Justin Ridgewell",
+ "license": "MIT"
+ },
+ {
+ "name": "@jridgewell/set-array",
+ "version": "1.2.1",
+ "author": "Justin Ridgewell",
+ "license": "MIT"
+ },
+ {
+ "name": "@jridgewell/source-map",
+ "version": "0.3.3",
+ "author": "Justin Ridgewell",
+ "license": "MIT"
+ },
+ {
+ "name": "@jridgewell/sourcemap-codec",
+ "version": "1.4.10",
+ "author": "Justin Ridgewell",
+ "license": "MIT"
+ },
+ {
+ "name": "@jridgewell/trace-mapping",
+ "version": "0.3.9",
+ "author": "Justin Ridgewell",
+ "license": "MIT"
+ },
+ {
+ "name": "@keyv/serialize",
+ "version": "1.1.1",
+ "author": "Jared Wray",
+ "license": "MIT"
+ },
+ {
+ "name": "@malept/cross-spawn-promise",
+ "version": "2.0.0",
+ "author": "Mark Lee",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@malept/flatpak-bundler",
+ "version": "0.4.0",
+ "author": "Matt Watson",
+ "license": "MIT"
+ },
+ {
+ "name": "@mapbox/jsonlint-lines-primitives",
+ "version": "2.0.3",
+ "author": "Zach Carter",
+ "license": "MIT"
+ },
+ {
+ "name": "@mapbox/unitbezier",
+ "version": "1.0.0",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "@maplibre/maplibre-gl-style-spec",
+ "version": "24.10.0",
+ "author": "MapLibre",
+ "license": "ISC"
+ },
+ {
+ "name": "@mdi/font",
+ "version": "7.4.47",
+ "author": "Austin Andrews",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@mdi/js",
+ "version": "7.4.47",
+ "author": "Austin Andrews",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@noble/hashes",
+ "version": "1.4.0",
+ "author": "Paul Miller",
+ "license": "MIT"
+ },
+ {
+ "name": "@one-ini/wasm",
+ "version": "0.1.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@oxc-parser/binding-linux-x64-gnu",
+ "version": "0.137.0",
+ "author": "Boshen and oxc contributors",
+ "license": "MIT"
+ },
+ {
+ "name": "@oxc-project/types",
+ "version": "0.133.0",
+ "author": "Boshen and oxc contributors",
+ "license": "MIT"
+ },
+ {
+ "name": "@oxc-resolver/binding-linux-x64-gnu",
+ "version": "11.21.3",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@peculiar/asn1-schema",
+ "version": "2.8.0",
+ "author": "PeculiarVentures, LLC",
+ "license": "MIT"
+ },
+ {
+ "name": "@peculiar/json-schema",
+ "version": "1.1.12",
+ "author": "PeculiarVentures, Inc",
+ "license": "MIT"
+ },
+ {
+ "name": "@peculiar/utils",
+ "version": "2.0.3",
+ "author": "PeculiarVentures",
+ "license": "MIT"
+ },
+ {
+ "name": "@peculiar/webcrypto",
+ "version": "1.7.1",
+ "author": "PeculiarVentures",
+ "license": "MIT"
+ },
+ {
+ "name": "@petamoriken/float16",
+ "version": "3.9.3",
+ "author": "Kenta Moriuchi",
+ "license": "MIT"
+ },
+ {
+ "name": "@pkgjs/parseargs",
+ "version": "0.11.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@pkgr/core",
+ "version": "0.3.6",
+ "author": "JounQin",
+ "license": "MIT"
+ },
+ {
+ "name": "@playwright/test",
+ "version": "1.61.1",
+ "author": "Microsoft Corporation",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "@polka/url",
+ "version": "1.0.0-next.24",
+ "author": "Luke Edwards",
+ "license": "MIT"
+ },
+ {
+ "name": "@rolldown/binding-linux-x64-gnu",
+ "version": "1.0.3",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@rolldown/pluginutils",
+ "version": "1.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@sec-ant/readable-stream",
+ "version": "0.4.1",
+ "author": "Ze-Zheng Wu",
+ "license": "MIT"
+ },
+ {
+ "name": "@sindresorhus/is",
+ "version": "8.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "@standard-schema/spec",
+ "version": "1.1.0",
+ "author": "Colin McDonnell",
+ "license": "MIT"
+ },
+ {
+ "name": "@tailwindcss/forms",
+ "version": "0.5.11",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@tailwindcss/node",
+ "version": "4.2.4",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@tailwindcss/oxide",
+ "version": "4.2.4",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@tailwindcss/oxide-linux-x64-gnu",
+ "version": "4.2.4",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@tailwindcss/vite",
+ "version": "4.2.4",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@tanstack/virtual-core",
+ "version": "3.17.2",
+ "author": "Tanner Linsley",
+ "license": "MIT"
+ },
+ {
+ "name": "@tanstack/vue-virtual",
+ "version": "3.13.30",
+ "author": "Tanner Linsley",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/chai",
+ "version": "5.2.2",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/debug",
+ "version": "4.1.13",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/deep-eql",
+ "version": "4.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/estree",
+ "version": "1.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/fs-extra",
+ "version": "9.0.13",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/hammerjs",
+ "version": "2.0.36",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/http-cache-semantics",
+ "version": "4.2.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/json-schema",
+ "version": "7.0.15",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/ms",
+ "version": "2.1.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/node",
+ "version": "0.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/rbush",
+ "version": "4.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@types/trusted-types",
+ "version": "2.0.7",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitejs/plugin-vue",
+ "version": "6.0.7",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/coverage-v8",
+ "version": "4.1.5",
+ "author": "Anthony Fu",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/expect",
+ "version": "4.1.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/mocker",
+ "version": "4.1.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/pretty-format",
+ "version": "4.1.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/runner",
+ "version": "4.1.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/snapshot",
+ "version": "4.1.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/spy",
+ "version": "4.1.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/ui",
+ "version": "4.1.9",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vitest/utils",
+ "version": "4.1.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@volar/language-core",
+ "version": "2.4.28",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@volar/source-map",
+ "version": "2.4.28",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@volar/typescript",
+ "version": "2.4.28",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/compiler-core",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/compiler-dom",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/compiler-sfc",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/compiler-ssr",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/devtools-api",
+ "version": "6.6.4",
+ "author": "Guillaume Chau",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/language-core",
+ "version": "3.3.6",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/reactivity",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/runtime-core",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/runtime-dom",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/server-renderer",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/shared",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "@vue/test-utils",
+ "version": "2.4.11",
+ "author": "Lachlan Miller",
+ "license": "MIT"
+ },
+ {
+ "name": "@vuetify/loader-shared",
+ "version": "2.1.2",
+ "author": "Kael Watts-Deuchar",
+ "license": "MIT"
+ },
+ {
+ "name": "@zarrita/storage",
+ "version": "0.2.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "abbrev",
+ "version": "2.0.0",
+ "author": "GitHub Inc.",
+ "license": "ISC"
+ },
+ {
+ "name": "acorn",
+ "version": "0.11.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "acorn-jsx",
+ "version": "5.3.2",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "agent-base",
+ "version": "7.0.2",
+ "author": "Nathan Rajlich",
+ "license": "MIT"
+ },
+ {
+ "name": "ajv",
+ "version": "6.14.0",
+ "author": "Evgeny Poberezkin",
+ "license": "MIT"
+ },
+ {
+ "name": "alien-signals",
+ "version": "3.2.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "ansi-regex",
+ "version": "5.0.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "ansi-styles",
+ "version": "4.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "app-builder-lib",
+ "version": "26.15.3",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "argparse",
+ "version": "2.0.1",
+ "author": "—",
+ "license": "Python-2.0"
+ },
+ {
+ "name": "array-buffer-byte-length",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "arraybuffer.prototype.slice",
+ "version": "1.0.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "asn1js",
+ "version": "3.0.10",
+ "author": "Yury Strozhevsky",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "ast-types",
+ "version": "0.8.15",
+ "author": "Ben Newman",
+ "license": "MIT"
+ },
+ {
+ "name": "ast-v8-to-istanbul",
+ "version": "1.0.0",
+ "author": "Ari Perkkiö",
+ "license": "MIT"
+ },
+ {
+ "name": "async",
+ "version": "3.2.6",
+ "author": "Caolan McMahon",
+ "license": "MIT"
+ },
+ {
+ "name": "async-exit-hook",
+ "version": "2.0.1",
+ "author": "Tapani Moilanen",
+ "license": "MIT"
+ },
+ {
+ "name": "async-function",
+ "version": "1.0.0",
+ "author": "Jordan Harbamd",
+ "license": "MIT"
+ },
+ {
+ "name": "asynckit",
+ "version": "0.4.0",
+ "author": "Alex Indigo",
+ "license": "MIT"
+ },
+ {
+ "name": "at-least-node",
+ "version": "1.0.0",
+ "author": "Ryan Zimmerman",
+ "license": "ISC"
+ },
+ {
+ "name": "available-typed-arrays",
+ "version": "1.0.7",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "aws4",
+ "version": "1.13.2",
+ "author": "Michael Hart",
+ "license": "MIT"
+ },
+ {
+ "name": "balanced-match",
+ "version": "1.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "base64-js",
+ "version": "1.5.1",
+ "author": "T. Jameson Little",
+ "license": "MIT"
+ },
+ {
+ "name": "bidi-js",
+ "version": "1.0.3",
+ "author": "Jason Johnston",
+ "license": "MIT"
+ },
+ {
+ "name": "bluebird",
+ "version": "3.7.2",
+ "author": "Petka Antonov",
+ "license": "MIT"
+ },
+ {
+ "name": "blueimp-canvas-to-blob",
+ "version": "3.29.0",
+ "author": "Sebastian Tschan",
+ "license": "MIT"
+ },
+ {
+ "name": "boolbase",
+ "version": "1.0.0",
+ "author": "Felix Boehm",
+ "license": "ISC"
+ },
+ {
+ "name": "boolean",
+ "version": "3.2.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "brace-expansion",
+ "version": "1.1.12",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "buffer-from",
+ "version": "1.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "builder-util",
+ "version": "26.15.3",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "builder-util-runtime",
+ "version": "9.7.0",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "byte-counter",
+ "version": "0.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "bytestreamjs",
+ "version": "2.0.1",
+ "author": "Yury Strozhevsky",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "cacheable-lookup",
+ "version": "7.0.0",
+ "author": "Szymon Marczak",
+ "license": "MIT"
+ },
+ {
+ "name": "cacheable-request",
+ "version": "13.0.19",
+ "author": "Jared Wray",
+ "license": "MIT"
+ },
+ {
+ "name": "call-bind",
+ "version": "1.0.9",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "call-bind-apply-helpers",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "call-bound",
+ "version": "1.0.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "callsites",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "camelcase",
+ "version": "5.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "chai",
+ "version": "6.2.2",
+ "author": "Jake Luer",
+ "license": "MIT"
+ },
+ {
+ "name": "chalk",
+ "version": "4.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "chownr",
+ "version": "3.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "chromium-pickle-js",
+ "version": "0.2.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "chunk-data",
+ "version": "0.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "ci-info",
+ "version": "4.3.1",
+ "author": "Thomas Watson Steen",
+ "license": "MIT"
+ },
+ {
+ "name": "cli-table3",
+ "version": "0.5.0",
+ "author": "James Talmage",
+ "license": "MIT"
+ },
+ {
+ "name": "cliui",
+ "version": "4.0.0",
+ "author": "Ben Coe",
+ "license": "ISC"
+ },
+ {
+ "name": "code-point-at",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "color-convert",
+ "version": "2.0.0",
+ "author": "Heather Arthur",
+ "license": "MIT"
+ },
+ {
+ "name": "color-name",
+ "version": "1.1.4",
+ "author": "DY",
+ "license": "MIT"
+ },
+ {
+ "name": "colors",
+ "version": "1.1.2",
+ "author": "Marak Squires",
+ "license": "MIT"
+ },
+ {
+ "name": "combined-stream",
+ "version": "1.0.8",
+ "author": "Felix Geisendörfer",
+ "license": "MIT"
+ },
+ {
+ "name": "commander",
+ "version": "2.20.0",
+ "author": "TJ Holowaychuk",
+ "license": "MIT"
+ },
+ {
+ "name": "compare-version",
+ "version": "0.1.2",
+ "author": "Kevin Mårtensson",
+ "license": "MIT"
+ },
+ {
+ "name": "component-emitter",
+ "version": "2.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "compressorjs",
+ "version": "1.3.0",
+ "author": "Chen Fengyuan",
+ "license": "MIT"
+ },
+ {
+ "name": "concat-map",
+ "version": "0.0.1",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "config-chain",
+ "version": "1.1.13",
+ "author": "Dominic Tarr",
+ "license": "MIT"
+ },
+ {
+ "name": "convert-source-map",
+ "version": "2.0.0",
+ "author": "Thorsten Lorenz",
+ "license": "MIT"
+ },
+ {
+ "name": "core-util-is",
+ "version": "1.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "MIT"
+ },
+ {
+ "name": "cross-dirname",
+ "version": "0.1.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "cross-env",
+ "version": "10.1.0",
+ "author": "Kent C. Dodds",
+ "license": "MIT"
+ },
+ {
+ "name": "cross-spawn",
+ "version": "7.0.5",
+ "author": "André Cruz",
+ "license": "MIT"
+ },
+ {
+ "name": "css-tree",
+ "version": "3.2.1",
+ "author": "Roman Dvornov",
+ "license": "MIT"
+ },
+ {
+ "name": "cssesc",
+ "version": "3.0.0",
+ "author": "Mathias Bynens",
+ "license": "MIT"
+ },
+ {
+ "name": "csstype",
+ "version": "3.2.3",
+ "author": "Fredrik Nicol",
+ "license": "MIT"
+ },
+ {
+ "name": "data-urls",
+ "version": "7.0.0",
+ "author": "Domenic Denicola",
+ "license": "MIT"
+ },
+ {
+ "name": "data-view-buffer",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "data-view-byte-length",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "data-view-byte-offset",
+ "version": "1.0.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "dayjs",
+ "version": "1.11.21",
+ "author": "iamkun",
+ "license": "MIT"
+ },
+ {
+ "name": "debug",
+ "version": "4.3.1",
+ "author": "TJ Holowaychuk",
+ "license": "MIT"
+ },
+ {
+ "name": "decamelize",
+ "version": "1.2.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "decimal.js",
+ "version": "10.6.0",
+ "author": "Michael Mclaughlin",
+ "license": "MIT"
+ },
+ {
+ "name": "decompress-response",
+ "version": "10.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "deep-is",
+ "version": "0.1.3",
+ "author": "Thorsten Lorenz",
+ "license": "MIT"
+ },
+ {
+ "name": "define-data-property",
+ "version": "1.1.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "define-properties",
+ "version": "1.2.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "delayed-stream",
+ "version": "1.0.0",
+ "author": "Felix Geisendörfer",
+ "license": "MIT"
+ },
+ {
+ "name": "detect-libc",
+ "version": "2.0.3",
+ "author": "Lovell Fuller",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "detect-node",
+ "version": "2.1.0",
+ "author": "Ilya Kantor",
+ "license": "MIT"
+ },
+ {
+ "name": "dijkstrajs",
+ "version": "1.0.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "dir-compare",
+ "version": "4.2.0",
+ "author": "Liviu Grigorescu",
+ "license": "MIT"
+ },
+ {
+ "name": "dmg-builder",
+ "version": "26.15.3",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "dompurify",
+ "version": "3.4.11",
+ "author": "Dr.-Ing. Mario Heiderich, Cure53",
+ "license": "(MPL-2.0 OR Apache-2.0)"
+ },
+ {
+ "name": "dotenv",
+ "version": "16.6.1",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "dotenv-expand",
+ "version": "11.0.7",
+ "author": "motdotla",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "dunder-proto",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "duplexer2",
+ "version": "0.1.4",
+ "author": "Conrad Pankoff",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "earcut",
+ "version": "3.1.0",
+ "author": "Volodymyr Agafonkin",
+ "license": "ISC"
+ },
+ {
+ "name": "eastasianwidth",
+ "version": "0.2.0",
+ "author": "Masaki Komagata",
+ "license": "MIT"
+ },
+ {
+ "name": "editorconfig",
+ "version": "1.0.7",
+ "author": "EditorConfig Team",
+ "license": "MIT"
+ },
+ {
+ "name": "ejs",
+ "version": "3.1.10",
+ "author": "Matthew Eernisse",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "electron",
+ "version": "42.4.0",
+ "author": "Electron Community",
+ "license": "MIT"
+ },
+ {
+ "name": "electron-builder",
+ "version": "26.15.3",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "electron-builder-squirrel-windows",
+ "version": "26.15.3",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "electron-prompt",
+ "version": "1.7.0",
+ "author": "p-sam",
+ "license": "MIT"
+ },
+ {
+ "name": "electron-publish",
+ "version": "26.15.3",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "electron-winstaller",
+ "version": "5.4.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "emoji-picker-element",
+ "version": "1.29.1",
+ "author": "Nolan Lawson",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "emoji-picker-element-data",
+ "version": "1.8.0",
+ "author": "Nolan Lawson",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "emoji-regex",
+ "version": "8.0.0",
+ "author": "Mathias Bynens",
+ "license": "MIT"
+ },
+ {
+ "name": "enhanced-resolve",
+ "version": "5.19.0",
+ "author": "Tobias Koppers @sokra",
+ "license": "MIT"
+ },
+ {
+ "name": "entities",
+ "version": "7.0.1",
+ "author": "Felix Boehm",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "env-paths",
+ "version": "2.2.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "err-code",
+ "version": "2.0.3",
+ "author": "IndigoUnited",
+ "license": "MIT"
+ },
+ {
+ "name": "es-abstract",
+ "version": "1.24.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "es-abstract-get",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "es-define-property",
+ "version": "1.0.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "es-errors",
+ "version": "1.3.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "es-module-lexer",
+ "version": "2.2.0",
+ "author": "Guy Bedford",
+ "license": "MIT"
+ },
+ {
+ "name": "es-object-atoms",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "es-set-tostringtag",
+ "version": "2.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "es-to-primitive",
+ "version": "1.3.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "es6-error",
+ "version": "4.1.1",
+ "author": "Ben Youngblood",
+ "license": "MIT"
+ },
+ {
+ "name": "escalade",
+ "version": "3.1.1",
+ "author": "Luke Edwards",
+ "license": "MIT"
+ },
+ {
+ "name": "escape-string-regexp",
+ "version": "4.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "eslint",
+ "version": "9.39.4",
+ "author": "Nicholas C. Zakas",
+ "license": "MIT"
+ },
+ {
+ "name": "eslint-config-prettier",
+ "version": "10.1.8",
+ "author": "Simon Lydell",
+ "license": "MIT"
+ },
+ {
+ "name": "eslint-plugin-prettier",
+ "version": "5.5.6",
+ "author": "Teddy Katz",
+ "license": "MIT"
+ },
+ {
+ "name": "eslint-plugin-security",
+ "version": "3.0.1",
+ "author": "Node Security Project",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "eslint-plugin-vue",
+ "version": "10.9.2",
+ "author": "Toru Nagashima",
+ "license": "MIT"
+ },
+ {
+ "name": "eslint-scope",
+ "version": "8.2.0",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "eslint-visitor-keys",
+ "version": "3.3.0",
+ "author": "Toru Nagashima",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "esmangle-evaluator",
+ "version": "1.0.0",
+ "author": "Andres Suarez",
+ "license": "Unknown"
+ },
+ {
+ "name": "espree",
+ "version": "10.3.0",
+ "author": "Nicholas C. Zakas",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "esprima-fb",
+ "version": "15001.1001.0-dev-harmony-fb",
+ "author": "Ariya Hidayat",
+ "license": "BSD"
+ },
+ {
+ "name": "esquery",
+ "version": "1.5.0",
+ "author": "Joel Feenstra",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "esrecurse",
+ "version": "4.3.0",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "estraverse",
+ "version": "5.1.0",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "estree-walker",
+ "version": "2.0.2",
+ "author": "Rich Harris",
+ "license": "MIT"
+ },
+ {
+ "name": "esutils",
+ "version": "2.0.2",
+ "author": "—",
+ "license": "BSD"
+ },
+ {
+ "name": "execa",
+ "version": "0.10.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "expect-type",
+ "version": "1.3.0",
+ "author": "—",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "exponential-backoff",
+ "version": "3.1.1",
+ "author": "Sami Sayegh",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "fake-indexeddb",
+ "version": "6.2.5",
+ "author": "Jeremy Scheff",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "falafel",
+ "version": "1.0.1",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "fast-deep-equal",
+ "version": "3.1.3",
+ "author": "Evgeny Poberezkin",
+ "license": "MIT"
+ },
+ {
+ "name": "fast-diff",
+ "version": "1.3.0",
+ "author": "Jason Chen",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "fast-json-stable-stringify",
+ "version": "2.0.0",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "fast-levenshtein",
+ "version": "2.0.6",
+ "author": "Ramesh Nair",
+ "license": "MIT"
+ },
+ {
+ "name": "fast-uri",
+ "version": "3.1.2",
+ "author": "Vincent Le Goff",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "fd-package-json",
+ "version": "2.0.0",
+ "author": "James Garbutt",
+ "license": "MIT"
+ },
+ {
+ "name": "fdir",
+ "version": "6.4.3",
+ "author": "thecodrr",
+ "license": "MIT"
+ },
+ {
+ "name": "fflate",
+ "version": "0.8.0",
+ "author": "Arjun Barrett",
+ "license": "MIT"
+ },
+ {
+ "name": "file-entry-cache",
+ "version": "8.0.0",
+ "author": "Jared Wray",
+ "license": "MIT"
+ },
+ {
+ "name": "filelist",
+ "version": "1.0.1",
+ "author": "Matthew Eernisse",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "find-up",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "flat-cache",
+ "version": "4.0.0",
+ "author": "Jared Wray",
+ "license": "MIT"
+ },
+ {
+ "name": "flatted",
+ "version": "3.4.2",
+ "author": "Andrea Giammarchi",
+ "license": "ISC"
+ },
+ {
+ "name": "for-each",
+ "version": "0.3.5",
+ "author": "Raynos",
+ "license": "MIT"
+ },
+ {
+ "name": "foreground-child",
+ "version": "3.1.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "form-data",
+ "version": "4.0.6",
+ "author": "Felix Geisendörfer",
+ "license": "MIT"
+ },
+ {
+ "name": "formatly",
+ "version": "0.3.0",
+ "author": "Josh Goldberg ✨",
+ "license": "MIT"
+ },
+ {
+ "name": "fs-extra",
+ "version": "7.0.1",
+ "author": "JP Richardson",
+ "license": "MIT"
+ },
+ {
+ "name": "fs.realpath",
+ "version": "1.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "function-bind",
+ "version": "1.1.1",
+ "author": "Raynos",
+ "license": "MIT"
+ },
+ {
+ "name": "function.prototype.name",
+ "version": "1.2.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "functions-have-names",
+ "version": "1.2.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "generator-function",
+ "version": "2.0.0",
+ "author": "Jordan Harbamd",
+ "license": "MIT"
+ },
+ {
+ "name": "geotiff",
+ "version": "3.0.5",
+ "author": "Fabian Schindler",
+ "license": "MIT"
+ },
+ {
+ "name": "get-caller-file",
+ "version": "1.0.1",
+ "author": "Stefan Penner",
+ "license": "ISC"
+ },
+ {
+ "name": "get-intrinsic",
+ "version": "1.1.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "get-proto",
+ "version": "1.0.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "get-stream",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "get-symbol-description",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "get-tsconfig",
+ "version": "4.14.0",
+ "author": "Hiroki Osame",
+ "license": "MIT"
+ },
+ {
+ "name": "glob",
+ "version": "7.2.3",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "glob-parent",
+ "version": "6.0.2",
+ "author": "Gulp Team",
+ "license": "ISC"
+ },
+ {
+ "name": "global-agent",
+ "version": "3.0.0",
+ "author": "Gajus Kuizinas",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "globals",
+ "version": "14.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "globalthis",
+ "version": "1.0.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "gopd",
+ "version": "1.0.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "got",
+ "version": "15.0.7",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "graceful-fs",
+ "version": "4.1.2",
+ "author": "—",
+ "license": "ISC"
+ },
+ {
+ "name": "has",
+ "version": "1.0.3",
+ "author": "Thiago de Arruda",
+ "license": "MIT"
+ },
+ {
+ "name": "has-bigints",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "has-flag",
+ "version": "4.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "has-property-descriptors",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "has-proto",
+ "version": "1.2.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "has-symbols",
+ "version": "1.0.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "has-tostringtag",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "hasown",
+ "version": "2.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "hosted-git-info",
+ "version": "10.1.1",
+ "author": "GitHub Inc.",
+ "license": "ISC"
+ },
+ {
+ "name": "html-encoding-sniffer",
+ "version": "6.0.0",
+ "author": "Domenic Denicola",
+ "license": "MIT"
+ },
+ {
+ "name": "html-escaper",
+ "version": "2.0.0",
+ "author": "Andrea Giammarchi",
+ "license": "MIT"
+ },
+ {
+ "name": "http-cache-semantics",
+ "version": "4.1.1",
+ "author": "Kornel Lesiński",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "http-proxy-agent",
+ "version": "7.0.0",
+ "author": "Nathan Rajlich",
+ "license": "MIT"
+ },
+ {
+ "name": "http2-wrapper",
+ "version": "2.2.1",
+ "author": "Szymon Marczak",
+ "license": "MIT"
+ },
+ {
+ "name": "https-proxy-agent",
+ "version": "7.0.0",
+ "author": "Nathan Rajlich",
+ "license": "MIT"
+ },
+ {
+ "name": "ignore",
+ "version": "5.2.0",
+ "author": "kael",
+ "license": "MIT"
+ },
+ {
+ "name": "immediate",
+ "version": "3.0.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "import-fresh",
+ "version": "3.2.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "imurmurhash",
+ "version": "0.1.4",
+ "author": "Jens Taylor",
+ "license": "MIT"
+ },
+ {
+ "name": "inflight",
+ "version": "1.0.4",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "inherits",
+ "version": "2.0.1",
+ "author": "—",
+ "license": "ISC"
+ },
+ {
+ "name": "inherits",
+ "version": "2.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "WTFPL2"
+ },
+ {
+ "name": "ini",
+ "version": "1.3.6",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "inline-process-browser",
+ "version": "1.0.0",
+ "author": "Calvin W. Metcalf",
+ "license": "MIT"
+ },
+ {
+ "name": "internal-slot",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "invert-kv",
+ "version": "2.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "is-array-buffer",
+ "version": "3.0.5",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-async-function",
+ "version": "2.1.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-bigint",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-blob",
+ "version": "2.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "is-boolean-object",
+ "version": "1.2.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-callable",
+ "version": "1.2.7",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-data-view",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-date-object",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-document.all",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-extglob",
+ "version": "2.1.1",
+ "author": "Jon Schlinkert",
+ "license": "MIT"
+ },
+ {
+ "name": "is-finalizationregistry",
+ "version": "1.1.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-fullwidth-code-point",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "is-generator-function",
+ "version": "1.1.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-glob",
+ "version": "4.0.0",
+ "author": "Jon Schlinkert",
+ "license": "MIT"
+ },
+ {
+ "name": "is-map",
+ "version": "2.0.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-negative-zero",
+ "version": "2.0.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-number-object",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-potential-custom-element-name",
+ "version": "1.0.1",
+ "author": "Mathias Bynens",
+ "license": "MIT"
+ },
+ {
+ "name": "is-regex",
+ "version": "1.2.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-set",
+ "version": "2.0.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-shared-array-buffer",
+ "version": "1.0.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-stream",
+ "version": "1.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "is-string",
+ "version": "1.1.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-symbol",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-typed-array",
+ "version": "1.1.15",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-weakmap",
+ "version": "2.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-weakref",
+ "version": "1.1.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "is-weakset",
+ "version": "2.0.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "isarray",
+ "version": "0.0.1",
+ "author": "Julian Gruber",
+ "license": "MIT"
+ },
+ {
+ "name": "isbinaryfile",
+ "version": "4.0.8",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "isexe",
+ "version": "2.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "istanbul-lib-coverage",
+ "version": "3.2.2",
+ "author": "Krishnan Anantheswaran",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "istanbul-lib-report",
+ "version": "3.0.1",
+ "author": "Krishnan Anantheswaran",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "istanbul-reports",
+ "version": "3.2.0",
+ "author": "Krishnan Anantheswaran",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "jackspeak",
+ "version": "3.1.2",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "jake",
+ "version": "10.8.5",
+ "author": "Matthew Eernisse",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "jiti",
+ "version": "2.4.2",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "js-beautify",
+ "version": "1.15.4",
+ "author": "Einar Lielmanis",
+ "license": "MIT"
+ },
+ {
+ "name": "js-cookie",
+ "version": "3.0.8",
+ "author": "Klaus Hartl",
+ "license": "MIT"
+ },
+ {
+ "name": "js-tokens",
+ "version": "10.0.0",
+ "author": "Simon Lydell",
+ "license": "MIT"
+ },
+ {
+ "name": "js-yaml",
+ "version": "4.2.0",
+ "author": "Vladimir Zapparov",
+ "license": "MIT"
+ },
+ {
+ "name": "jsdom",
+ "version": "29.1.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "json-buffer",
+ "version": "3.0.1",
+ "author": "Dominic Tarr",
+ "license": "MIT"
+ },
+ {
+ "name": "json-schema-traverse",
+ "version": "0.4.1",
+ "author": "Evgeny Poberezkin",
+ "license": "MIT"
+ },
+ {
+ "name": "json-stable-stringify-without-jsonify",
+ "version": "1.0.1",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "json-stringify-pretty-compact",
+ "version": "4.0.0",
+ "author": "Simon Lydell",
+ "license": "MIT"
+ },
+ {
+ "name": "json-stringify-safe",
+ "version": "5.0.1",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "json5",
+ "version": "2.2.3",
+ "author": "Aseem Kishore",
+ "license": "MIT"
+ },
+ {
+ "name": "jsonfile",
+ "version": "4.0.0",
+ "author": "JP Richardson",
+ "license": "MIT"
+ },
+ {
+ "name": "jsqr",
+ "version": "1.4.0",
+ "author": "—",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "jszip",
+ "version": "3.10.1",
+ "author": "Stuart Knightley",
+ "license": "(MIT OR GPL-3.0-or-later)"
+ },
+ {
+ "name": "keycharm",
+ "version": "0.4.0",
+ "author": "Alex de Mulder",
+ "license": "(Apache-2.0 OR MIT)"
+ },
+ {
+ "name": "keyv",
+ "version": "4.5.4",
+ "author": "Jared Wray",
+ "license": "MIT"
+ },
+ {
+ "name": "knip",
+ "version": "6.24.0",
+ "author": "Lars Kappert",
+ "license": "ISC"
+ },
+ {
+ "name": "lazy-val",
+ "version": "1.0.5",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "lcid",
+ "version": "2.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "lerc",
+ "version": "3.0.0",
+ "author": "Esri",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "levn",
+ "version": "0.4.1",
+ "author": "George Zahariev",
+ "license": "MIT"
+ },
+ {
+ "name": "lie",
+ "version": "3.3.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "lightningcss",
+ "version": "1.32.0",
+ "author": "—",
+ "license": "MPL-2.0"
+ },
+ {
+ "name": "lightningcss-linux-x64-gnu",
+ "version": "1.32.0",
+ "author": "—",
+ "license": "MPL-2.0"
+ },
+ {
+ "name": "locate-path",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "lodash",
+ "version": "4.18.0",
+ "author": "John-David Dalton",
+ "license": "MIT"
+ },
+ {
+ "name": "lodash.merge",
+ "version": "4.6.2",
+ "author": "John-David Dalton",
+ "license": "MIT"
+ },
+ {
+ "name": "lowercase-keys",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "lru-cache",
+ "version": "6.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "lru-cache",
+ "version": "11.3.5",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "magic-string",
+ "version": "0.30.21",
+ "author": "Rich Harris",
+ "license": "MIT"
+ },
+ {
+ "name": "magicast",
+ "version": "0.5.2",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "make-dir",
+ "version": "4.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "mapbox-to-css-font",
+ "version": "3.2.0",
+ "author": "Andreas Hocevar",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "marked",
+ "version": "18.0.5",
+ "author": "Christopher Jeffrey",
+ "license": "MIT"
+ },
+ {
+ "name": "matcher",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "math-intrinsics",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "mdn-data",
+ "version": "2.27.1",
+ "author": "Mozilla Developer Network",
+ "license": "CC0-1.0"
+ },
+ {
+ "name": "mem",
+ "version": "3.0.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "micron-parser",
+ "version": "0.0.0",
+ "author": "—",
+ "license": "Unknown"
+ },
+ {
+ "name": "mime",
+ "version": "2.6.0",
+ "author": "Robert Kieffer",
+ "license": "MIT"
+ },
+ {
+ "name": "mime-db",
+ "version": "1.52.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "mime-types",
+ "version": "2.1.35",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "mimic-fn",
+ "version": "1.2.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "mimic-response",
+ "version": "4.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "mini-svg-data-uri",
+ "version": "1.2.3",
+ "author": "Taylor “Tigt” Hunt",
+ "license": "MIT"
+ },
+ {
+ "name": "minimatch",
+ "version": "3.1.4",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "minimatch",
+ "version": "10.2.3",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "minimist",
+ "version": "1.2.8",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "minipass",
+ "version": "7.1.2",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "minizlib",
+ "version": "3.1.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "MIT"
+ },
+ {
+ "name": "mkdirp",
+ "version": "0.5.1",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "mrmime",
+ "version": "2.0.0",
+ "author": "Luke Edwards",
+ "license": "MIT"
+ },
+ {
+ "name": "ms",
+ "version": "2.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "muggle-string",
+ "version": "0.4.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "nanoid",
+ "version": "3.3.12",
+ "author": "Andrey Sitnik",
+ "license": "MIT"
+ },
+ {
+ "name": "natural-compare",
+ "version": "1.4.0",
+ "author": "Lauri Rooden",
+ "license": "MIT"
+ },
+ {
+ "name": "node-abi",
+ "version": "4.31.0",
+ "author": "Lukas Geiger",
+ "license": "MIT"
+ },
+ {
+ "name": "node-api-version",
+ "version": "0.2.1",
+ "author": "Tim Fish",
+ "license": "MIT"
+ },
+ {
+ "name": "node-gyp",
+ "version": "12.4.0",
+ "author": "Nathan Rajlich",
+ "license": "MIT"
+ },
+ {
+ "name": "node-int64",
+ "version": "0.4.0",
+ "author": "Robert Kieffer",
+ "license": "MIT"
+ },
+ {
+ "name": "nopt",
+ "version": "7.2.1",
+ "author": "GitHub Inc.",
+ "license": "ISC"
+ },
+ {
+ "name": "normalize-url",
+ "version": "8.1.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "npm-run-path",
+ "version": "2.0.2",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "nth-check",
+ "version": "2.1.1",
+ "author": "Felix Boehm",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "number-is-nan",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "numcodecs",
+ "version": "0.3.2",
+ "author": "Trevor Manz",
+ "license": "MIT"
+ },
+ {
+ "name": "object-assign",
+ "version": "4.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "object-inspect",
+ "version": "1.13.4",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "object-keys",
+ "version": "1.1.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "object.assign",
+ "version": "4.1.7",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "obug",
+ "version": "2.1.1",
+ "author": "Kevin Deng",
+ "license": "MIT"
+ },
+ {
+ "name": "ol",
+ "version": "10.9.0",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "ol-mapbox-style",
+ "version": "13.4.1",
+ "author": "—",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "once",
+ "version": "1.4.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "optionator",
+ "version": "0.9.3",
+ "author": "George Zahariev",
+ "license": "MIT"
+ },
+ {
+ "name": "os-locale",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "own-keys",
+ "version": "1.0.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "oxc-parser",
+ "version": "0.137.0",
+ "author": "Boshen and oxc contributors",
+ "license": "MIT"
+ },
+ {
+ "name": "oxc-resolver",
+ "version": "11.21.3",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "p-finally",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "p-is-promise",
+ "version": "1.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "p-limit",
+ "version": "2.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "p-locate",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "p-try",
+ "version": "2.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "package-json-from-dist",
+ "version": "1.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "pako",
+ "version": "1.0.2",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "pako",
+ "version": "2.0.4",
+ "author": "—",
+ "license": "(MIT AND Zlib)"
+ },
+ {
+ "name": "parent-module",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "parse-headers",
+ "version": "2.0.2",
+ "author": "David Björklund",
+ "license": "MIT"
+ },
+ {
+ "name": "parse5",
+ "version": "8.0.1",
+ "author": "Ivan Nikulin",
+ "license": "MIT"
+ },
+ {
+ "name": "path-browserify",
+ "version": "1.0.1",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "path-exists",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "path-is-absolute",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "path-key",
+ "version": "2.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "path-scurry",
+ "version": "1.11.1",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "pathe",
+ "version": "2.0.3",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "pbf",
+ "version": "4.0.1",
+ "author": "Konstantin Kaefer",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "pe-library",
+ "version": "0.4.1",
+ "author": "jet",
+ "license": "MIT"
+ },
+ {
+ "name": "picocolors",
+ "version": "1.1.1",
+ "author": "Alexey Raspopov",
+ "license": "ISC"
+ },
+ {
+ "name": "picomatch",
+ "version": "4.0.4",
+ "author": "Jon Schlinkert",
+ "license": "MIT"
+ },
+ {
+ "name": "pkijs",
+ "version": "3.4.0",
+ "author": "Yury Strozhevsky",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "playwright",
+ "version": "1.61.1",
+ "author": "Microsoft Corporation",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "playwright-core",
+ "version": "1.61.1",
+ "author": "Microsoft Corporation",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "plist",
+ "version": "3.0.5",
+ "author": "Nathan Rajlich",
+ "license": "MIT"
+ },
+ {
+ "name": "pngjs",
+ "version": "5.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "possible-typed-array-names",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "postcss",
+ "version": "8.5.15",
+ "author": "Andrey Sitnik",
+ "license": "MIT"
+ },
+ {
+ "name": "postcss-selector-parser",
+ "version": "7.1.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "postject",
+ "version": "1.0.0-alpha.6",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "prelude-ls",
+ "version": "1.2.1",
+ "author": "George Zahariev",
+ "license": "MIT"
+ },
+ {
+ "name": "prettier",
+ "version": "3.9.3",
+ "author": "James Long",
+ "license": "MIT"
+ },
+ {
+ "name": "prettier-linter-helpers",
+ "version": "1.0.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "private",
+ "version": "0.1.5",
+ "author": "Ben Newman",
+ "license": "MIT"
+ },
+ {
+ "name": "proc-log",
+ "version": "6.1.0",
+ "author": "GitHub Inc.",
+ "license": "ISC"
+ },
+ {
+ "name": "process-nextick-args",
+ "version": "1.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "progress",
+ "version": "2.0.3",
+ "author": "TJ Holowaychuk",
+ "license": "MIT"
+ },
+ {
+ "name": "promise-retry",
+ "version": "2.0.1",
+ "author": "IndigoUnited",
+ "license": "MIT"
+ },
+ {
+ "name": "proper-lockfile",
+ "version": "4.1.2",
+ "author": "André Cruz",
+ "license": "MIT"
+ },
+ {
+ "name": "proto-list",
+ "version": "1.2.4",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "protocol-buffers-schema",
+ "version": "3.6.1",
+ "author": "Mathias Buus",
+ "license": "MIT"
+ },
+ {
+ "name": "punycode",
+ "version": "2.1.0",
+ "author": "Mathias Bynens",
+ "license": "MIT"
+ },
+ {
+ "name": "pvtsutils",
+ "version": "1.3.6",
+ "author": "PeculiarVentures",
+ "license": "MIT"
+ },
+ {
+ "name": "pvutils",
+ "version": "1.1.5",
+ "author": "Yury Strozhevsky",
+ "license": "MIT"
+ },
+ {
+ "name": "qrcode",
+ "version": "1.5.4",
+ "author": "Ryan Day",
+ "license": "MIT"
+ },
+ {
+ "name": "quick-lru",
+ "version": "5.1.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "quickselect",
+ "version": "2.0.0",
+ "author": "Vladimir Agafonkin",
+ "license": "ISC"
+ },
+ {
+ "name": "rbush",
+ "version": "4.0.0",
+ "author": "Volodymyr Agafonkin",
+ "license": "MIT"
+ },
+ {
+ "name": "read-binary-file-arch",
+ "version": "1.0.6",
+ "author": "Samuel Maddock",
+ "license": "MIT"
+ },
+ {
+ "name": "readable-stream",
+ "version": "1.0.31",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "recast",
+ "version": "0.10.43",
+ "author": "Ben Newman",
+ "license": "MIT"
+ },
+ {
+ "name": "reference-spec-reader",
+ "version": "0.2.0",
+ "author": "manzt",
+ "license": "MIT"
+ },
+ {
+ "name": "reflect.getprototypeof",
+ "version": "1.0.10",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "regexp-tree",
+ "version": "0.1.1",
+ "author": "Dmitry Soshnikov",
+ "license": "MIT"
+ },
+ {
+ "name": "regexp.prototype.flags",
+ "version": "1.5.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "require-directory",
+ "version": "2.1.1",
+ "author": "Troy Goode",
+ "license": "MIT"
+ },
+ {
+ "name": "require-from-string",
+ "version": "2.0.2",
+ "author": "Vsevolod Strukchinsky",
+ "license": "MIT"
+ },
+ {
+ "name": "require-main-filename",
+ "version": "1.0.1",
+ "author": "Ben Coe",
+ "license": "ISC"
+ },
+ {
+ "name": "resedit",
+ "version": "1.7.2",
+ "author": "jet",
+ "license": "MIT"
+ },
+ {
+ "name": "resolve-alpn",
+ "version": "1.2.1",
+ "author": "Szymon Marczak",
+ "license": "MIT"
+ },
+ {
+ "name": "resolve-from",
+ "version": "4.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "resolve-pkg-maps",
+ "version": "1.0.0",
+ "author": "Hiroki Osame",
+ "license": "MIT"
+ },
+ {
+ "name": "resolve-protobuf-schema",
+ "version": "2.1.0",
+ "author": "Mathias Buus",
+ "license": "MIT"
+ },
+ {
+ "name": "responselike",
+ "version": "4.0.2",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "retry",
+ "version": "0.12.0",
+ "author": "Tim Koschützki",
+ "license": "MIT"
+ },
+ {
+ "name": "rimraf",
+ "version": "2.6.2",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "roarr",
+ "version": "2.15.4",
+ "author": "Gajus Kuizinas",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "rolldown",
+ "version": "1.0.3",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "safe-array-concat",
+ "version": "1.1.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "safe-buffer",
+ "version": "5.1.1",
+ "author": "Feross Aboukhadijeh",
+ "license": "MIT"
+ },
+ {
+ "name": "safe-push-apply",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "safe-regex",
+ "version": "2.1.1",
+ "author": "James C.",
+ "license": "MIT"
+ },
+ {
+ "name": "safe-regex-test",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "sanitize-filename",
+ "version": "1.6.4",
+ "author": "Parsha Pourkhomami",
+ "license": "WTFPL OR ISC"
+ },
+ {
+ "name": "sax",
+ "version": "1.2.4",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "saxes",
+ "version": "6.0.0",
+ "author": "Louis-Dominique Dubeau",
+ "license": "ISC"
+ },
+ {
+ "name": "semver",
+ "version": "7.5.2",
+ "author": "GitHub Inc.",
+ "license": "ISC"
+ },
+ {
+ "name": "semver-compare",
+ "version": "1.0.0",
+ "author": "James Halliday",
+ "license": "MIT"
+ },
+ {
+ "name": "serialize-error",
+ "version": "7.0.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "set-blocking",
+ "version": "2.0.0",
+ "author": "Ben Coe",
+ "license": "ISC"
+ },
+ {
+ "name": "set-function-length",
+ "version": "1.2.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "set-function-name",
+ "version": "2.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "set-proto",
+ "version": "1.0.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "setimmediate",
+ "version": "1.0.5",
+ "author": "YuzuJS",
+ "license": "MIT"
+ },
+ {
+ "name": "shebang-command",
+ "version": "2.0.0",
+ "author": "Kevin Mårtensson",
+ "license": "MIT"
+ },
+ {
+ "name": "shebang-regex",
+ "version": "3.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "side-channel",
+ "version": "1.1.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "side-channel-list",
+ "version": "1.0.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "side-channel-map",
+ "version": "1.0.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "side-channel-weakmap",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "siginfo",
+ "version": "2.0.0",
+ "author": "Emil Bay",
+ "license": "ISC"
+ },
+ {
+ "name": "signal-exit",
+ "version": "3.0.0",
+ "author": "Ben Coe",
+ "license": "ISC"
+ },
+ {
+ "name": "simple-update-notifier",
+ "version": "2.0.0",
+ "author": "alexbrazier",
+ "license": "MIT"
+ },
+ {
+ "name": "sirv",
+ "version": "3.0.2",
+ "author": "Luke Edwards",
+ "license": "MIT"
+ },
+ {
+ "name": "smol-toml",
+ "version": "1.7.0",
+ "author": "Cynthia Rey",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "source-map",
+ "version": "0.5.0",
+ "author": "Nick Fitzgerald",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "source-map-js",
+ "version": "1.0.2",
+ "author": "Valentin 7rulnik Semirulnik",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "source-map-support",
+ "version": "0.5.19",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "sprintf-js",
+ "version": "1.1.3",
+ "author": "Alexandru Mărășteanu",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "stackback",
+ "version": "0.0.2",
+ "author": "Roman Shtylman",
+ "license": "MIT"
+ },
+ {
+ "name": "stat-mode",
+ "version": "1.0.0",
+ "author": "Nathan Rajlich",
+ "license": "MIT"
+ },
+ {
+ "name": "std-env",
+ "version": "4.0.0-rc.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "stop-iteration-iterator",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "string-width",
+ "version": "1.0.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "string.prototype.trim",
+ "version": "1.2.11",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "string.prototype.trimend",
+ "version": "1.0.10",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "string.prototype.trimstart",
+ "version": "1.0.8",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "string_decoder",
+ "version": "0.10.24",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "strip-eof",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "strip-json-comments",
+ "version": "3.1.1",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "sumchecker",
+ "version": "3.0.1",
+ "author": "Mark Lee",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "supports-color",
+ "version": "7.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "symbol-tree",
+ "version": "3.2.4",
+ "author": "Joris van der Wel",
+ "license": "MIT"
+ },
+ {
+ "name": "synckit",
+ "version": "0.11.13",
+ "author": "JounQin",
+ "license": "MIT"
+ },
+ {
+ "name": "tagged-tag",
+ "version": "1.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "tailwindcss",
+ "version": "4.2.4",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "tapable",
+ "version": "2.3.0",
+ "author": "Tobias Koppers @sokra",
+ "license": "MIT"
+ },
+ {
+ "name": "tar",
+ "version": "7.5.19",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "temp",
+ "version": "0.9.4",
+ "author": "Bruce Williams",
+ "license": "MIT"
+ },
+ {
+ "name": "temp-file",
+ "version": "3.4.0",
+ "author": "Vladimir Krivosheev",
+ "license": "MIT"
+ },
+ {
+ "name": "terser",
+ "version": "5.48.0",
+ "author": "Mihai Bazon",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "through2",
+ "version": "0.6.2",
+ "author": "Rod Vagg",
+ "license": "MIT"
+ },
+ {
+ "name": "tiny-async-pool",
+ "version": "1.3.0",
+ "author": "Rafael Xavier de Souza",
+ "license": "MIT"
+ },
+ {
+ "name": "tinybench",
+ "version": "2.9.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "tinyexec",
+ "version": "1.0.2",
+ "author": "James Garbutt",
+ "license": "MIT"
+ },
+ {
+ "name": "tinyglobby",
+ "version": "0.2.12",
+ "author": "Superchupu",
+ "license": "MIT"
+ },
+ {
+ "name": "tinyqueue",
+ "version": "3.0.0",
+ "author": "—",
+ "license": "ISC"
+ },
+ {
+ "name": "tinyrainbow",
+ "version": "3.1.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "tldts",
+ "version": "7.4.5",
+ "author": "Rémi Berson",
+ "license": "MIT"
+ },
+ {
+ "name": "tldts-core",
+ "version": "7.4.5",
+ "author": "Rémi Berson",
+ "license": "MIT"
+ },
+ {
+ "name": "tmp",
+ "version": "0.2.7",
+ "author": "KARASZI István",
+ "license": "MIT"
+ },
+ {
+ "name": "tmp-promise",
+ "version": "3.0.3",
+ "author": "Benjamin Gruenbaum and Collaborators.",
+ "license": "MIT"
+ },
+ {
+ "name": "totalist",
+ "version": "3.0.0",
+ "author": "Luke Edwards",
+ "license": "MIT"
+ },
+ {
+ "name": "tough-cookie",
+ "version": "6.0.1",
+ "author": "Jeremy Stashewsky",
+ "license": "BSD-3-Clause"
+ },
+ {
+ "name": "tr46",
+ "version": "6.0.0",
+ "author": "Sebastian Mayr",
+ "license": "MIT"
+ },
+ {
+ "name": "truncate-utf8-bytes",
+ "version": "1.0.2",
+ "author": "Carl Xiong",
+ "license": "WTFPL"
+ },
+ {
+ "name": "tslib",
+ "version": "2.4.0",
+ "author": "Microsoft Corp.",
+ "license": "0BSD"
+ },
+ {
+ "name": "type-check",
+ "version": "0.4.0",
+ "author": "George Zahariev",
+ "license": "MIT"
+ },
+ {
+ "name": "type-fest",
+ "version": "0.13.1",
+ "author": "Sindre Sorhus",
+ "license": "(MIT OR CC0-1.0)"
+ },
+ {
+ "name": "typed-array-buffer",
+ "version": "1.0.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "typed-array-byte-length",
+ "version": "1.0.3",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "typed-array-byte-offset",
+ "version": "1.0.4",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "typed-array-length",
+ "version": "1.0.8",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "typescript",
+ "version": "6.0.3",
+ "author": "Microsoft Corp.",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "uint8array-extras",
+ "version": "1.5.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "unbash",
+ "version": "4.0.2",
+ "author": "Lars Kappert",
+ "license": "ISC"
+ },
+ {
+ "name": "unbox-primitive",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "undici",
+ "version": "7.28.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "undici-types",
+ "version": "7.16.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "universalify",
+ "version": "0.1.0",
+ "author": "Ryan Zimmerman",
+ "license": "MIT"
+ },
+ {
+ "name": "unreachable-branch-transform",
+ "version": "0.3.0",
+ "author": "Andres Suarez",
+ "license": "MIT"
+ },
+ {
+ "name": "unzipit",
+ "version": "2.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "unzipper",
+ "version": "0.12.5",
+ "author": "Ziggy Jonsson",
+ "license": "MIT"
+ },
+ {
+ "name": "upath",
+ "version": "2.0.1",
+ "author": "Angelos Pikoulas",
+ "license": "MIT"
+ },
+ {
+ "name": "uri-js",
+ "version": "4.2.2",
+ "author": "Gary Court",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "utf8-byte-length",
+ "version": "1.0.5",
+ "author": "Carl Xiong",
+ "license": "(WTFPL OR MIT)"
+ },
+ {
+ "name": "util-deprecate",
+ "version": "1.0.1",
+ "author": "Nathan Rajlich",
+ "license": "MIT"
+ },
+ {
+ "name": "uuid",
+ "version": "14.0.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "vis-data",
+ "version": "7.1.10",
+ "author": "—",
+ "license": "(Apache-2.0 OR MIT)"
+ },
+ {
+ "name": "vis-network",
+ "version": "9.1.13",
+ "author": "—",
+ "license": "(Apache-2.0 OR MIT)"
+ },
+ {
+ "name": "vis-util",
+ "version": "5.0.7",
+ "author": "Alex de Mulder",
+ "license": "(Apache-2.0 OR MIT)"
+ },
+ {
+ "name": "vite",
+ "version": "8.0.16",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "vite-plugin-vuetify",
+ "version": "2.1.3",
+ "author": "Kael Watts-Deuchar",
+ "license": "MIT"
+ },
+ {
+ "name": "vitest",
+ "version": "4.1.5",
+ "author": "Anthony Fu",
+ "license": "MIT"
+ },
+ {
+ "name": "vscode-uri",
+ "version": "3.1.0",
+ "author": "Microsoft",
+ "license": "MIT"
+ },
+ {
+ "name": "vue",
+ "version": "3.5.39",
+ "author": "Evan You",
+ "license": "MIT"
+ },
+ {
+ "name": "vue-component-type-helpers",
+ "version": "3.3.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "vue-eslint-parser",
+ "version": "10.4.1",
+ "author": "Toru Nagashima",
+ "license": "MIT"
+ },
+ {
+ "name": "vue-i18n",
+ "version": "11.4.6",
+ "author": "kazuya kawaguchi",
+ "license": "MIT"
+ },
+ {
+ "name": "vue-router",
+ "version": "4.6.4",
+ "author": "Eduardo San Martin Morote",
+ "license": "MIT"
+ },
+ {
+ "name": "vue-tsc",
+ "version": "3.3.6",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "vuetify",
+ "version": "3.12.8",
+ "author": "John Leider",
+ "license": "MIT"
+ },
+ {
+ "name": "w3c-xmlserializer",
+ "version": "5.0.0",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "walk-up-path",
+ "version": "4.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "web-worker",
+ "version": "1.5.0",
+ "author": "—",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "webcrypto-core",
+ "version": "1.9.2",
+ "author": "PeculiarVentures",
+ "license": "MIT"
+ },
+ {
+ "name": "webidl-conversions",
+ "version": "8.0.1",
+ "author": "Domenic Denicola",
+ "license": "BSD-2-Clause"
+ },
+ {
+ "name": "whatwg-mimetype",
+ "version": "5.0.0",
+ "author": "Domenic Denicola",
+ "license": "MIT"
+ },
+ {
+ "name": "whatwg-url",
+ "version": "16.0.1",
+ "author": "Sebastian Mayr",
+ "license": "MIT"
+ },
+ {
+ "name": "which",
+ "version": "2.0.1",
+ "author": "GitHub Inc.",
+ "license": "ISC"
+ },
+ {
+ "name": "which-boxed-primitive",
+ "version": "1.1.0",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "which-builtin-type",
+ "version": "1.2.1",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "which-collection",
+ "version": "1.0.2",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "which-module",
+ "version": "2.0.0",
+ "author": "nexdrew",
+ "license": "ISC"
+ },
+ {
+ "name": "which-typed-array",
+ "version": "1.1.22",
+ "author": "Jordan Harband",
+ "license": "MIT"
+ },
+ {
+ "name": "why-is-node-running",
+ "version": "2.3.0",
+ "author": "Mathias Buus",
+ "license": "MIT"
+ },
+ {
+ "name": "wrap-ansi",
+ "version": "2.0.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "wrappy",
+ "version": "1.0.2",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "xml-name-validator",
+ "version": "4.0.0",
+ "author": "Domenic Denicola",
+ "license": "Apache-2.0"
+ },
+ {
+ "name": "xml-utils",
+ "version": "1.10.2",
+ "author": "Daniel J. Dufour",
+ "license": "CC0-1.0"
+ },
+ {
+ "name": "xmlbuilder",
+ "version": "9.0.7",
+ "author": "Ozgur Ozcitak",
+ "license": "MIT"
+ },
+ {
+ "name": "xmlchars",
+ "version": "2.2.0",
+ "author": "Louis-Dominique Dubeau",
+ "license": "MIT"
+ },
+ {
+ "name": "xtend",
+ "version": "4.0.0",
+ "author": "Raynos",
+ "license": "MIT"
+ },
+ {
+ "name": "y18n",
+ "version": "5.0.5",
+ "author": "Ben Coe",
+ "license": "ISC"
+ },
+ {
+ "name": "yallist",
+ "version": "4.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "ISC"
+ },
+ {
+ "name": "yallist",
+ "version": "5.0.0",
+ "author": "Isaac Z. Schlueter",
+ "license": "BlueOak-1.0.0"
+ },
+ {
+ "name": "yaml",
+ "version": "2.9.0",
+ "author": "Eemeli Aro",
+ "license": "ISC"
+ },
+ {
+ "name": "yargs",
+ "version": "12.0.5",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "yargs-parser",
+ "version": "18.1.1",
+ "author": "Ben Coe",
+ "license": "ISC"
+ },
+ {
+ "name": "yocto-queue",
+ "version": "0.1.0",
+ "author": "Sindre Sorhus",
+ "license": "MIT"
+ },
+ {
+ "name": "zarrita",
+ "version": "0.7.1",
+ "author": "—",
+ "license": "MIT"
+ },
+ {
+ "name": "zod",
+ "version": "4.4.3",
+ "author": "Colin McDonnell",
+ "license": "MIT"
+ },
+ {
+ "name": "zstddec",
+ "version": "0.2.0",
+ "author": "Don McCurdy",
+ "license": "MIT AND BSD-3-Clause"
+ }
]

diff --git a/meshchatx/src/backend/database/__init__.py b/meshchatx/src/backend/database/__init__.py
index c9fcc392..4cc51ecc 100644
--- a/meshchatx/src/backend/database/__init__.py
+++ b/meshchatx/src/backend/database/__init__.py
@@ -657,14 +657,21 @@ class Database:
is_backup: bool = False,
):
"""Deletes a database snapshot or auto-backup."""
- base_dir = "database-backups" if is_backup else "snapshots"
- file_path = os.path.join(storage_path, base_dir, filename)
+ from meshchatx.src.path_utils import safe_path_under_dir
- # Basic security check to ensure we stay within the intended directory
- abs_path = os.path.abspath(file_path)
- abs_base = os.path.abspath(os.path.join(storage_path, base_dir))
+ if not isinstance(filename, str) or not filename or "\x00" in filename:
+ msg = "Invalid path"
+ raise ValueError(msg)
+ normalized = filename.replace("\\", "/")
+ if normalized != os.path.basename(normalized) or ".." in normalized:
+ msg = "Invalid path"
+ raise ValueError(msg)
- if not abs_path.startswith(abs_base):
+ base_dir = "database-backups" if is_backup else "snapshots"
+ directory = os.path.join(storage_path, base_dir)
+ name = filename if filename.endswith(".zip") else f"{filename}.zip"
+ abs_path = safe_path_under_dir(directory, name)
+ if not abs_path:
msg = "Invalid path"
raise ValueError(msg)

diff --git a/meshchatx/src/backend/identity_manager.py b/meshchatx/src/backend/identity_manager.py
index 6c7fca96..a791a9a2 100644
--- a/meshchatx/src/backend/identity_manager.py
+++ b/meshchatx/src/backend/identity_manager.py
@@ -11,6 +11,8 @@ import RNS
from meshchatx.src.backend.database.config import ConfigDAO
from meshchatx.src.backend.database.provider import DatabaseProvider
from meshchatx.src.backend.database.schema import DatabaseSchema
+from meshchatx.src.backend.meshchat_utils import normalize_identity_storage_hash
+from meshchatx.src.path_utils import is_path_within_dir
class IdentityManager:
@@ -240,11 +242,18 @@ class IdentityManager:
json.dump(existing_metadata, f)
def delete_identity(self, identity_hash: str, current_identity_hash: str | None):
- if current_identity_hash and identity_hash == current_identity_hash:
+ canonical = normalize_identity_storage_hash(identity_hash)
+ if not canonical:
+ raise ValueError("Invalid identity hash")
+ current_canonical = normalize_identity_storage_hash(current_identity_hash or "")
+ if current_canonical and canonical == current_canonical:
raise ValueError("Cannot delete the current active identity")
- identity_dir = os.path.join(self.storage_dir, "identities", identity_hash)
- if os.path.exists(identity_dir):
+ identities_root = os.path.join(self.storage_dir, "identities")
+ identity_dir = os.path.join(identities_root, canonical)
+ if not is_path_within_dir(identity_dir, identities_root):
+ raise ValueError("Invalid identity hash")
+ if os.path.isdir(identity_dir):
shutil.rmtree(identity_dir)
return True
return False

diff --git a/meshchatx/src/backend/map_manager.py b/meshchatx/src/backend/map_manager.py
index b4b2e3cd..64a60e87 100644
--- a/meshchatx/src/backend/map_manager.py
+++ b/meshchatx/src/backend/map_manager.py
@@ -22,9 +22,9 @@ MAX_EXPORT_TILES = 200_000
def is_path_within_dir(path, directory):
"""Return True when path resolves to a location inside directory."""
- candidate = os.path.normcase(os.path.normpath(os.path.realpath(path)))
- root = os.path.normcase(os.path.normpath(os.path.realpath(directory)))
- return candidate == root or candidate.startswith(root + os.sep)
+ from meshchatx.src.path_utils import is_path_within_dir as _is_path_within_dir
+
+ return _is_path_within_dir(path, directory)
def is_mbtiles_filename(filename):

diff --git a/meshchatx/src/backend/meshchat_utils.py b/meshchatx/src/backend/meshchat_utils.py
index 9128f1cf..82f6dc0f 100644
--- a/meshchatx/src/backend/meshchat_utils.py
+++ b/meshchatx/src/backend/meshchat_utils.py
@@ -260,6 +260,19 @@ def hex_identifier_to_bytes(value: str | None) -> bytes | None:
return None
+_IDENTITY_STORAGE_HASH_HEX_LEN = 32
+
+
+def normalize_identity_storage_hash(value: str | None) -> str:
+ """Return canonical 32-char hex identity directory name, or empty if invalid."""
+ h = normalize_hex_identifier(value)
+ if len(h) != _IDENTITY_STORAGE_HASH_HEX_LEN:
+ return ""
+ if hex_identifier_to_bytes(h) is None:
+ return ""
+ return h
+
+
_LXMF_CONTENT_HASH_HEX_LEN = 64

diff --git a/meshchatx/src/backend/plugin_manager.py b/meshchatx/src/backend/plugin_manager.py
index 525b82ca..c45d8350 100644
--- a/meshchatx/src/backend/plugin_manager.py
+++ b/meshchatx/src/backend/plugin_manager.py
@@ -67,6 +67,7 @@ from meshchatx.src.backend.plugin_wasm_bundle import (
validate_embedded_bundle,
write_wasm_bundle,
)
+from meshchatx.src.path_utils import is_path_within_dir
SUPPORTED_API_VERSION = 1
PLUGIN_ID_RE = re.compile(r"^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$")
@@ -328,6 +329,10 @@ class PluginManager:
entry = backend.get("entry")
if not isinstance(entry, str) or not entry.strip():
raise ValueError("plugin backend.entry is required")
+ try:
+ normalize_asset_path(entry.strip())
+ except PluginSecurityError as exc:
+ raise ValueError(f"plugin backend.entry is invalid: {exc}") from exc
backend_type = backend.get("type") or "wasm"
if backend_type not in ("wasm", "python"):
raise ValueError("plugin backend.type must be wasm or python")
@@ -748,7 +753,11 @@ class PluginManager:
entry = backend.get("entry")
if not isinstance(entry, str) or not entry.strip():
raise ValueError("python backend entry is missing")
- path = os.path.join(record.install_path, entry)
+ normalized = normalize_asset_path(entry.strip())
+ root = os.path.realpath(record.install_path)
+ path = os.path.realpath(os.path.join(root, normalized))
+ if path != root and not path.startswith(root + os.sep):
+ raise PluginSecurityError("python backend entry escapes install tree")
if not os.path.isfile(path):
raise ValueError("python backend entry not found")
return path
@@ -1289,7 +1298,14 @@ class PluginManager:
def _resolve_backend_wasm_path(self, record: PluginRecord) -> str:
backend = record.manifest["backend"]
- wasm_path = os.path.join(record.install_path, backend["entry"])
+ entry = backend["entry"]
+ if not isinstance(entry, str) or not entry.strip():
+ raise PluginSecurityError("backend wasm entry missing")
+ normalized = normalize_asset_path(entry.strip())
+ root = os.path.realpath(record.install_path)
+ wasm_path = os.path.realpath(os.path.join(root, normalized))
+ if wasm_path != root and not wasm_path.startswith(root + os.sep):
+ raise PluginSecurityError("backend wasm entry escapes install tree")
if not os.path.isfile(wasm_path):
return self._ensure_minimal_wasm(record)
try:
@@ -1299,9 +1315,9 @@ class PluginManager:
raise PluginSecurityError("invalid wasm module")
except (PluginSecurityError, OSError, ValueError):
parent = os.path.dirname(wasm_path)
- if parent:
+ if parent and is_path_within_dir(parent, root):
os.makedirs(parent, exist_ok=True)
- if os.path.isfile(wasm_path):
+ if os.path.isfile(wasm_path) and is_path_within_dir(wasm_path, root):
os.remove(wasm_path)
return self._ensure_minimal_wasm(record)
return wasm_path
@@ -1359,8 +1375,17 @@ class PluginManager:
wasmtime = self._load_wasmtime()
wasm_bytes = wasmtime.wat2wasm(MINIMAL_PLUGIN_WAT)
backend = record.manifest["backend"]
- wasm_path = os.path.join(record.install_path, backend["entry"])
- os.makedirs(os.path.dirname(wasm_path), exist_ok=True)
+ entry = backend["entry"]
+ if not isinstance(entry, str) or not entry.strip():
+ raise PluginSecurityError("backend wasm entry missing")
+ normalized = normalize_asset_path(entry.strip())
+ root = os.path.realpath(record.install_path)
+ wasm_path = os.path.realpath(os.path.join(root, normalized))
+ if wasm_path != root and not wasm_path.startswith(root + os.sep):
+ raise PluginSecurityError("backend wasm entry escapes install tree")
+ parent = os.path.dirname(wasm_path)
+ if parent:
+ os.makedirs(parent, exist_ok=True)
with open(wasm_path, "wb") as handle:
handle.write(wasm_bytes)
return wasm_path

diff --git a/meshchatx/src/backend/rncp_handler.py b/meshchatx/src/backend/rncp_handler.py
index 0d05c78f..29d70e62 100644
--- a/meshchatx/src/backend/rncp_handler.py
+++ b/meshchatx/src/backend/rncp_handler.py
@@ -298,6 +298,37 @@ class RNCPHandler:
return None
+ def _resolve_send_path(self, file_path: str) -> str:
+ """Resolve a local send path under storage or home, never identity keys."""
+ if not isinstance(file_path, str) or not file_path or "\x00" in file_path:
+ msg = "Invalid file path"
+ raise ValueError(msg)
+ expanded = os.path.expanduser(file_path)
+ if not os.path.isabs(expanded):
+ expanded = os.path.join(self.storage_dir, expanded)
+ real = os.path.realpath(expanded)
+ allowed_roots = [os.path.realpath(self.storage_dir)]
+ home = os.path.expanduser("~")
+ if home and home != "~":
+ allowed_roots.append(os.path.realpath(home))
+ if not any(
+ real == root or real.startswith(root + os.sep) for root in allowed_roots
+ ):
+ msg = "File path is outside the RNCP send jail"
+ raise PermissionError(msg)
+ base = os.path.basename(real)
+ if base in {"identity", "identity.bak"}:
+ msg = "Refusing to send identity private key material"
+ raise PermissionError(msg)
+ parts = {part for part in real.split(os.sep) if part}
+ if parts & {".ssh", ".gnupg"}:
+ msg = "Refusing to send credential material"
+ raise PermissionError(msg)
+ if not os.path.isfile(real):
+ msg = f"File not found: {file_path}"
+ raise FileNotFoundError(msg)
+ return real
+
async def send_file(
self,
destination_hash: bytes,
@@ -307,10 +338,7 @@ class RNCPHandler:
no_compress: bool = False,
on_transfer_started: Callable[[str], None] | None = None,
):
- file_path = os.path.expanduser(file_path)
- if not os.path.isfile(file_path):
- msg = f"File not found: {file_path}"
- raise FileNotFoundError(msg)
+ file_path = self._resolve_send_path(file_path)
if not RNS.Transport.has_path(destination_hash):
RNS.Transport.request_path(destination_hash)

diff --git a/meshchatx/src/path_utils.py b/meshchatx/src/path_utils.py
index 528e98bb..9a0cfa74 100644
--- a/meshchatx/src/path_utils.py
+++ b/meshchatx/src/path_utils.py
@@ -9,6 +9,15 @@ import tempfile
from aiohttp import web
+def is_path_within_dir(path: str, directory: str) -> bool:
+ """Return True when path resolves inside directory (realpath + separator)."""
+ if not path or not directory:
+ return False
+ candidate = os.path.normcase(os.path.normpath(os.path.realpath(path)))
+ root = os.path.normcase(os.path.normpath(os.path.realpath(directory)))
+ return candidate == root or candidate.startswith(root + os.sep)
+
+
def safe_path_under_dir(directory: str, filename: str) -> str | None:
"""Resolve filename as a basename under directory, or None if unsafe.
@@ -29,6 +38,25 @@ def safe_path_under_dir(directory: str, filename: str) -> str | None:
return path
+def resolve_path_under_dir(directory: str, user_path: str) -> str | None:
+ """Join user_path under directory and return realpath if contained, else None.
+
+ Unlike safe_path_under_dir, relative subpaths are allowed when they stay
+ inside directory after realpath normalization.
+ """
+ if not isinstance(directory, str) or not directory:
+ return None
+ if not isinstance(user_path, str) or not user_path or "\x00" in user_path:
+ return None
+ cleaned = user_path.replace("\\", "/").lstrip("/")
+ if not cleaned or cleaned in {".", ".."}:
+ return None
+ joined = os.path.join(directory, cleaned)
+ if not is_path_within_dir(joined, directory):
+ return None
+ return os.path.realpath(joined)
+
+
def resolve_log_dir():
"""Choose a writable log directory across container, desktop, and Windows."""
env_dir = os.environ.get("MESHCHAT_LOG_DIR")
@@ -65,13 +93,23 @@ def resolve_log_dir():
return None
-def request_client_ip(request: web.Request) -> str:
+def request_client_ip(
+ request: web.Request,
+ trusted_proxy_cidrs: str | None = None,
+) -> str:
+ """Return the client IP, trusting X-Forwarded-For only from configured proxies.
+
+ When trusted_proxy_cidrs is empty, X-Forwarded-For is ignored so clients
+ cannot spoof allowlist or login lockout keys.
+ """
+ remote = (request.remote or "").strip()
xff = request.headers.get("X-Forwarded-For")
- if xff:
- return xff.split(",")[0].strip()
- if request.remote:
- return request.remote
- return ""
+ if xff and trusted_proxy_cidrs:
+ from meshchatx.src.backend.ip_allowlist import client_ip_allowed
+
+ if remote and client_ip_allowed(remote, trusted_proxy_cidrs):
+ return xff.split(",")[0].strip()
+ return remote
def get_file_path(filename):

diff --git a/tests/backend/test_access_attempts_enforcement.py b/tests/backend/test_access_attempts_enforcement.py
index fd1ef4eb..08cf25db 100644
--- a/tests/backend/test_access_attempts_enforcement.py
+++ b/tests/backend/test_access_attempts_enforcement.py
@@ -47,9 +47,14 @@ def _id_hex(mock_app) -> str:
return mock_app.identity.hash.hex()
-def test_request_client_ip_prefers_x_forwarded_for():
+def test_request_client_ip_prefers_x_forwarded_for_only_from_trusted_proxy():
+ r = _make_req("127.0.0.1", "ua", xff="203.0.113.5, 10.0.0.2")
+ assert _request_client_ip(r, trusted_proxy_cidrs="127.0.0.1/32") == "203.0.113.5"
+
+
+def test_request_client_ip_ignores_xff_by_default():
r = _make_req("10.0.0.1", "ua", xff="203.0.113.5, 10.0.0.2")
- assert _request_client_ip(r) == "203.0.113.5"
+ assert _request_client_ip(r) == "10.0.0.1"
def test_request_client_ip_falls_back_to_remote():

diff --git a/tests/backend/test_identity_switch_http_api.py b/tests/backend/test_identity_switch_http_api.py
index 3331398a..2cd4c639 100644
--- a/tests/backend/test_identity_switch_http_api.py
+++ b/tests/backend/test_identity_switch_http_api.py
@@ -35,34 +35,54 @@ async def test_post_identities_switch_hotswap_response_includes_hash_and_display
):
web_identity_app.hotswap_identity = AsyncMock(return_value=True)
expected_display = web_identity_app.config.display_name.get()
+ identity_hash = "ab" * 16
aio_app = _build_aio_app(web_identity_app)
- body = {"identity_hash": "alt_identity_hash", "keep_alive": False}
+ body = {"identity_hash": identity_hash, "keep_alive": False}
async with TestClient(TestServer(aio_app)) as client:
r = await client.post("/api/v1/identities/switch", json=body)
assert r.status == 200
data = await r.json()
assert data["hotswapped"] is True
- assert data["identity_hash"] == "alt_identity_hash"
+ assert data["identity_hash"] == identity_hash
assert data["display_name"] == expected_display
assert "message" in data
web_identity_app.hotswap_identity.assert_awaited_once_with(
- "alt_identity_hash",
+ identity_hash,
keep_alive=False,
)
+@pytest.mark.asyncio
+async def test_post_identities_switch_rejects_non_hex_hash(web_identity_app):
+ web_identity_app.hotswap_identity = AsyncMock(return_value=True)
+ aio_app = _build_aio_app(web_identity_app)
+ async with TestClient(TestServer(aio_app)) as client:
+ r = await client.post(
+ "/api/v1/identities/switch",
+ json={"identity_hash": "../../tmp/evil", "keep_alive": False},
+ )
+ assert r.status == 400
+ body = await r.json()
+ assert "Invalid identity hash" in (body.get("message") or "")
+ web_identity_app.hotswap_identity.assert_not_called()
+
+
@pytest.mark.asyncio
async def test_post_identities_switch_passes_keep_alive(web_identity_app):
web_identity_app.hotswap_identity = AsyncMock(return_value=True)
+ identity_hash = "cd" * 16
aio_app = _build_aio_app(web_identity_app)
async with TestClient(TestServer(aio_app)) as client:
r = await client.post(
"/api/v1/identities/switch",
- json={"identity_hash": "id_x", "keep_alive": True},
+ json={"identity_hash": identity_hash, "keep_alive": True},
)
assert r.status == 200
- web_identity_app.hotswap_identity.assert_awaited_once_with("id_x", keep_alive=True)
+ web_identity_app.hotswap_identity.assert_awaited_once_with(
+ identity_hash,
+ keep_alive=True,
+ )
@pytest.mark.asyncio
@@ -73,7 +93,7 @@ async def test_post_identities_switch_503_when_not_running(web_identity_app):
async with TestClient(TestServer(aio_app)) as client:
r = await client.post(
"/api/v1/identities/switch",
- json={"identity_hash": "any"},
+ json={"identity_hash": "ef" * 16},
)
assert r.status == 503
web_identity_app.hotswap_identity.assert_not_called()
@@ -88,7 +108,7 @@ async def test_post_identities_switch_hotswap_false_missing_identity_returns_500
async with TestClient(TestServer(aio_app)) as client:
r = await client.post(
"/api/v1/identities/switch",
- json={"identity_hash": "missing_alt"},
+ json={"identity_hash": "11" * 16},
)
assert r.status == 500
body = await r.json()
@@ -109,21 +129,23 @@ async def test_post_identities_switch_concurrent_posts_each_invoke_hotswap(
web_identity_app.hotswap_identity = slow_hotswap
aio_app = _build_aio_app(web_identity_app)
+ hash_a = "22" * 16
+ hash_b = "33" * 16
async with TestClient(TestServer(aio_app)) as client:
results = await asyncio.gather(
client.post(
"/api/v1/identities/switch",
- json={"identity_hash": "concurrent_a"},
+ json={"identity_hash": hash_a},
),
client.post(
"/api/v1/identities/switch",
- json={"identity_hash": "concurrent_b"},
+ json={"identity_hash": hash_b},
),
)
assert all(resp.status == 200 for resp in results)
bodies = [await resp.json() for resp in results]
assert all(b.get("hotswapped") is True for b in bodies)
hashes = {b.get("identity_hash") for b in bodies}
- assert hashes == {"concurrent_a", "concurrent_b"}
+ assert hashes == {hash_a, hash_b}
assert calls["n"] == 2

diff --git a/tests/backend/test_rnode_download_firmware.py b/tests/backend/test_rnode_download_firmware.py
index ccb3e5f1..69ba507b 100644
--- a/tests/backend/test_rnode_download_firmware.py
+++ b/tests/backend/test_rnode_download_firmware.py
@@ -30,18 +30,20 @@ def web_app(mock_app):
class _FakeResponse:
- def __init__(self, status: int, body: bytes):
+ def __init__(self, status: int, body: bytes, url: str = "https://github.com/x"):
self.status = status
self._body = body
+ self.url = url
async def read(self):
return self._body
class _FakeSession:
- def __init__(self, status: int, body: bytes):
+ def __init__(self, status: int, body: bytes, final_url: str | None = None):
self._status = status
self._body = body
+ self._final_url = final_url
self.requested_urls: list[str] = []
async def __aenter__(self):
@@ -54,10 +56,11 @@ class _FakeSession:
self.requested_urls.append(url)
status = self._status
body = self._body
+ final_url = self._final_url or url
@asynccontextmanager
async def _cm():
- yield _FakeResponse(status, body)
+ yield _FakeResponse(status, body, url=final_url)
return _cm()
@@ -73,16 +76,44 @@ async def test_download_firmware_requires_url(web_app):
@pytest.mark.asyncio
-async def test_download_firmware_rejects_disallowed_url(web_app):
+async def test_download_firmware_rejects_disallowed_redirect_target(web_app):
aio_app = _build_aio_app(web_app)
- async with TestClient(TestServer(aio_app)) as client:
- r = await client.get(
- "/api/v1/tools/rnode/download_firmware",
- params={"url": "https://evil.example.com/firmware.zip"},
- )
- assert r.status == 403
- body = await r.json()
- assert "Invalid" in body["error"]
+ fake_session = _FakeSession(
+ 200,
+ b"PK\x03\x04ssrf",
+ final_url="http://127.0.0.1:9337/secret",
+ )
+
+ with patch("aiohttp.ClientSession", MagicMock(return_value=fake_session)):
+ async with TestClient(TestServer(aio_app)) as client:
+ r = await client.get(
+ "/api/v1/tools/rnode/download_firmware",
+ params={
+ "url": "https://github.com/owner/repo/releases/download/v1/firmware.zip",
+ },
+ )
+ assert r.status == 403
+ body = await r.json()
+ assert "redirect" in body["error"].lower()
+
+
+@pytest.mark.asyncio
+async def test_download_firmware_allows_codeload_redirect(web_app):
+ aio_app = _build_aio_app(web_app)
+ fake_zip = b"PK\x03\x04ok"
+ final = "https://codeload.github.com/owner/repo/zip/refs/tags/v1"
+ fake_session = _FakeSession(200, fake_zip, final_url=final)
+
+ with patch("aiohttp.ClientSession", MagicMock(return_value=fake_session)):
+ async with TestClient(TestServer(aio_app)) as client:
+ r = await client.get(
+ "/api/v1/tools/rnode/download_firmware",
+ params={
+ "url": "https://github.com/owner/repo/archive/refs/tags/v1.zip",
+ },
+ )
+ assert r.status == 200
+ assert await r.read() == fake_zip
@pytest.mark.asyncio

diff --git a/tests/backend/test_security_path_and_backup.py b/tests/backend/test_security_path_and_backup.py
index 7156c18f..9bf3cc73 100644
--- a/tests/backend/test_security_path_and_backup.py
+++ b/tests/backend/test_security_path_and_backup.py
@@ -21,4 +21,10 @@ def test_delete_database_backup_rejects_path_outside_storage(tmp_path):
"../../../etc/passwd",
is_backup=True,
)
+ with pytest.raises(ValueError, match="Invalid path"):
+ db.delete_snapshot_or_backup(
+ storage,
+ "../database-backups_old/secret.zip",
+ is_backup=True,
+ )
db.close_all()

diff --git a/tests/backend/test_security_path_jail_regressions.py b/tests/backend/test_security_path_jail_regressions.py
new file mode 100644
index 00000000..19226641
--- /dev/null
+++ b/tests/backend/test_security_path_jail_regressions.py
@@ -0,0 +1,231 @@
+# SPDX-License-Identifier: 0BSD
+
+"""Regression tests for HIGH/CRITICAL path jail and client-IP fixes."""
+
+from __future__ import annotations
+
+import os
+from types import SimpleNamespace
+from unittest.mock import MagicMock
+
+import pytest
+
+from meshchatx.src.backend.app_security_settings import (
+ get_trusted_proxy_cidrs,
+ save_app_security_settings,
+)
+from meshchatx.src.backend.database import Database
+from meshchatx.src.backend.identity_manager import IdentityManager
+from meshchatx.src.backend.meshchat_utils import normalize_identity_storage_hash
+from meshchatx.src.backend.plugin_guard import PluginSecurityError
+from meshchatx.src.backend.plugin_manager import PluginManager
+from meshchatx.src.backend.rncp_handler import RNCPHandler
+from meshchatx.src.path_utils import (
+ is_path_within_dir,
+ request_client_ip,
+ resolve_path_under_dir,
+ safe_path_under_dir,
+)
+
+
+def test_normalize_identity_storage_hash_rejects_traversal():
+ assert normalize_identity_storage_hash("../../tmp/target") == ""
+ assert normalize_identity_storage_hash("not-a-hash") == ""
+ assert normalize_identity_storage_hash("ab" * 16) == "ab" * 16
+
+
+def test_delete_identity_rejects_path_traversal(tmp_path):
+ manager = IdentityManager(str(tmp_path))
+ victim = tmp_path / "victim_dir"
+ victim.mkdir()
+ marker = victim / "keep.txt"
+ marker.write_text("safe")
+ with pytest.raises(ValueError, match="Invalid identity hash"):
+ manager.delete_identity("../../victim_dir", current_identity_hash=None)
+ assert marker.exists()
+
+
+def test_delete_identity_removes_only_canonical_dir(tmp_path):
+ manager = IdentityManager(str(tmp_path))
+ identity_hash = "cd" * 16
+ target = tmp_path / "identities" / identity_hash
+ target.mkdir(parents=True)
+ (target / "identity").write_bytes(b"x")
+ assert manager.delete_identity(identity_hash, current_identity_hash=None) is True
+ assert not target.exists()
+
+
+def test_backup_delete_rejects_prefix_collision_and_traversal(tmp_path):
+ db = Database(str(tmp_path / "t.db"))
+ db.initialize()
+ storage = str(tmp_path)
+ backup_dir = os.path.join(storage, "database-backups")
+ old_dir = os.path.join(storage, "database-backups_old")
+ os.makedirs(backup_dir, exist_ok=True)
+ os.makedirs(old_dir, exist_ok=True)
+ secret = os.path.join(old_dir, "secret.zip")
+ with open(secret, "wb") as handle:
+ handle.write(b"PK")
+ with pytest.raises(ValueError, match="Invalid path"):
+ db.delete_snapshot_or_backup(
+ storage,
+ "../database-backups_old/secret.zip",
+ is_backup=True,
+ )
+ assert os.path.exists(secret)
+ db.close_all()
+
+
+def test_safe_path_under_dir_collapses_traversal_to_basename(tmp_path):
+ active = tmp_path / "identities" / ("aa" * 16) / "database-backups"
+ other = tmp_path / "identities" / ("bb" * 16) / "database-backups"
+ active.mkdir(parents=True)
+ other.mkdir(parents=True)
+ secret = other / "secret.zip"
+ secret.write_bytes(b"PK")
+ # Basename collapse must not resolve to the other identity's file.
+ resolved = safe_path_under_dir(
+ str(active),
+ "../../" + ("bb" * 16) + "/database-backups/secret.zip",
+ )
+ assert resolved == os.path.realpath(str(active / "secret.zip"))
+ assert resolved != os.path.realpath(str(secret))
+
+
+def test_resolve_path_under_dir_allows_nested_safe_path(tmp_path):
+ nested = tmp_path / "snapshots"
+ nested.mkdir()
+ target = nested / "snap.zip"
+ target.write_bytes(b"PK")
+ resolved = resolve_path_under_dir(str(nested), "snap.zip")
+ assert resolved == os.path.realpath(str(target))
+ assert resolve_path_under_dir(str(nested), "../outside.zip") is None
+
+
+def test_plugin_backend_entry_rejects_absolute_and_traversal(tmp_path):
+ manager = PluginManager(str(tmp_path))
+ with pytest.raises(ValueError, match="backend.entry is invalid"):
+ manager._validate_manifest(
+ {
+ "id": "com.example.evil",
+ "name": "evil",
+ "version": "1.0.0",
+ "apiVersion": 1,
+ "backend": {"type": "python", "entry": "/tmp/evil.py"},
+ },
+ )
+ with pytest.raises(ValueError, match="backend.entry is invalid"):
+ manager._validate_manifest(
+ {
+ "id": "com.example.evil2",
+ "name": "evil2",
+ "version": "1.0.0",
+ "apiVersion": 1,
+ "backend": {"type": "wasm", "entry": "../escape.wasm"},
+ },
+ )
+
+
+def test_plugin_python_entry_path_jails_to_install_tree(tmp_path):
+ manager = PluginManager(str(tmp_path))
+ install = tmp_path / "installed" / "com.example.ok"
+ install.mkdir(parents=True)
+ entry = install / "backend.py"
+ entry.write_text("x = 1\n")
+ outside = tmp_path / "outside.py"
+ outside.write_text("x = 2\n")
+ record = MagicMock()
+ record.install_path = str(install)
+ record.manifest = {"backend": {"type": "python", "entry": "backend.py"}}
+ assert manager._python_entry_path(record) == os.path.realpath(str(entry))
+ record.manifest = {"backend": {"type": "python", "entry": str(outside)}}
+ with pytest.raises(PluginSecurityError):
+ manager._python_entry_path(record)
+
+
+def test_plugin_wasm_resolve_does_not_delete_outside_install(tmp_path):
+ manager = PluginManager(str(tmp_path))
+ install = tmp_path / "installed" / "com.example.wasm"
+ install.mkdir(parents=True)
+ victim = tmp_path / "victim.txt"
+ victim.write_text("do-not-delete")
+ record = MagicMock()
+ record.id = "com.example.wasm"
+ record.install_path = str(install)
+ record.manifest = {"backend": {"type": "wasm", "entry": str(victim)}}
+ with pytest.raises(PluginSecurityError):
+ manager._resolve_backend_wasm_path(record)
+ assert victim.exists()
+
+
+@pytest.mark.asyncio
+async def test_rncp_send_path_jails_and_blocks_identity(tmp_path):
+ handler = RNCPHandler(MagicMock(), MagicMock(), str(tmp_path))
+ allowed = tmp_path / "payload.bin"
+ allowed.write_bytes(b"data")
+ identity_file = tmp_path / "identity"
+ identity_file.write_bytes(b"secret-key")
+ outside = tmp_path.parent / "outside-rncp.bin"
+ outside.write_bytes(b"nope")
+
+ assert handler._resolve_send_path(str(allowed)).endswith("payload.bin")
+ with pytest.raises(PermissionError, match="identity private key"):
+ handler._resolve_send_path(str(identity_file))
+ with pytest.raises(PermissionError, match="send jail"):
+ handler._resolve_send_path(str(outside))
+
+
+def test_request_client_ip_ignores_xff_without_trusted_proxy():
+ req = SimpleNamespace(
+ headers={"X-Forwarded-For": "203.0.113.9"},
+ remote="10.0.0.1",
+ )
+ assert request_client_ip(req) == "10.0.0.1"
+ assert request_client_ip(req, trusted_proxy_cidrs="") == "10.0.0.1"
+
+
+def test_request_client_ip_honors_xff_from_trusted_proxy():
+ req = SimpleNamespace(
+ headers={"X-Forwarded-For": "203.0.113.9, 10.0.0.2"},
+ remote="127.0.0.1",
+ )
+ assert request_client_ip(req, trusted_proxy_cidrs="127.0.0.1/32") == "203.0.113.9"
+
+
+def test_request_client_ip_ignores_xff_from_untrusted_remote():
+ req = SimpleNamespace(
+ headers={"X-Forwarded-For": "203.0.113.9"},
+ remote="198.51.100.1",
+ )
+ assert request_client_ip(req, trusted_proxy_cidrs="127.0.0.1/32") == "198.51.100.1"
+
+
+def test_trusted_proxy_cidrs_env_override(tmp_path, monkeypatch):
+ save_app_security_settings(str(tmp_path), {"trusted_proxy_cidrs": "10.0.0.1/32"})
+ monkeypatch.setenv("MESHCHAT_TRUSTED_PROXIES", "127.0.0.1/32")
+ assert get_trusted_proxy_cidrs(str(tmp_path)) == "127.0.0.1/32"
+
+
+def test_is_path_within_dir_prefix_collision():
+ assert not is_path_within_dir(
+ "/tmp/storage/database-backups_old/x.zip",
+ "/tmp/storage/database-backups",
+ )
+
+
+def test_resolve_database_restore_path_jails(mock_app, tmp_path):
+ storage = tmp_path / "idstorage"
+ snaps = storage / "snapshots"
+ snaps.mkdir(parents=True)
+ good = snaps / "ok.zip"
+ good.write_bytes(b"PK")
+ evil = tmp_path / "evil.zip"
+ evil.write_bytes(b"PK")
+ mock_app.storage_path = str(storage)
+ assert mock_app._resolve_database_restore_path("ok.zip") == os.path.realpath(
+ str(good)
+ )
+ assert mock_app._resolve_database_restore_path(str(evil)) is None
+ assert mock_app._resolve_database_restore_path(str(good)) == os.path.realpath(
+ str(good)
+ )


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────